Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
6e3b90de
Commit
6e3b90de
authored
Jan 28, 2016
by
alcinos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add static creator for TVL1 optical flow class
parent
be4312ec
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
49 additions
and
2 deletions
+49
-2
ptr.inl.hpp
modules/core/include/opencv2/core/ptr.inl.hpp
+11
-0
tracking.hpp
modules/video/include/opencv2/video/tracking.hpp
+15
-0
tvl1flow.cpp
modules/video/src/tvl1flow.cpp
+21
-0
test_tvl1optflow.cpp
modules/video/test/test_tvl1optflow.cpp
+1
-1
tvl1_optical_flow.cpp
samples/cpp/tvl1_optical_flow.cpp
+1
-1
No files found.
modules/core/include/opencv2/core/ptr.inl.hpp
View file @
6e3b90de
...
...
@@ -358,6 +358,17 @@ Ptr<T> makePtr(const A1& a1, const A2& a2, const A3& a3, const A4& a4, const A5&
return
Ptr
<
T
>
(
new
T
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
,
a9
,
a10
));
}
template
<
typename
T
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
,
typename
A8
,
typename
A9
,
typename
A10
,
typename
A11
>
Ptr
<
T
>
makePtr
(
const
A1
&
a1
,
const
A2
&
a2
,
const
A3
&
a3
,
const
A4
&
a4
,
const
A5
&
a5
,
const
A6
&
a6
,
const
A7
&
a7
,
const
A8
&
a8
,
const
A9
&
a9
,
const
A10
&
a10
,
const
A11
&
a11
)
{
return
Ptr
<
T
>
(
new
T
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
,
a9
,
a10
,
a11
));
}
template
<
typename
T
,
typename
A1
,
typename
A2
,
typename
A3
,
typename
A4
,
typename
A5
,
typename
A6
,
typename
A7
,
typename
A8
,
typename
A9
,
typename
A10
,
typename
A11
,
typename
A12
>
Ptr
<
T
>
makePtr
(
const
A1
&
a1
,
const
A2
&
a2
,
const
A3
&
a3
,
const
A4
&
a4
,
const
A5
&
a5
,
const
A6
&
a6
,
const
A7
&
a7
,
const
A8
&
a8
,
const
A9
&
a9
,
const
A10
&
a10
,
const
A11
&
a11
,
const
A12
&
a12
)
{
return
Ptr
<
T
>
(
new
T
(
a1
,
a2
,
a3
,
a4
,
a5
,
a6
,
a7
,
a8
,
a9
,
a10
,
a11
,
a12
));
}
}
// namespace cv
//! @endcond
...
...
modules/video/include/opencv2/video/tracking.hpp
View file @
6e3b90de
...
...
@@ -502,6 +502,21 @@ public:
virtual
int
getMedianFiltering
()
const
=
0
;
/** @copybrief getMedianFiltering @see getMedianFiltering */
virtual
void
setMedianFiltering
(
int
val
)
=
0
;
/** @brief Creates instance of cv::DualTVL1OpticalFlow*/
static
Ptr
<
DualTVL1OpticalFlow
>
create
(
double
tau
=
0.25
,
double
lambda
=
0.15
,
double
theta
=
0.3
,
int
nscales
=
5
,
int
warps
=
5
,
double
epsilon
=
0.01
,
int
innnerIterations
=
30
,
int
outerIterations
=
10
,
double
scaleStep
=
0.8
,
double
gamma
=
0.0
,
int
medianFiltering
=
5
,
bool
useInitialFlow
=
false
);
};
/** @brief Creates instance of cv::DenseOpticalFlow
...
...
modules/video/src/tvl1flow.cpp
View file @
6e3b90de
...
...
@@ -89,6 +89,17 @@ namespace {
class
OpticalFlowDual_TVL1
:
public
DualTVL1OpticalFlow
{
public
:
OpticalFlowDual_TVL1
(
double
tau_
,
double
lambda_
,
double
theta_
,
int
nscales_
,
int
warps_
,
double
epsilon_
,
int
innerIterations_
,
int
outerIterations_
,
double
scaleStep_
,
double
gamma_
,
int
medianFiltering_
,
bool
useInitialFlow_
)
:
tau
(
tau_
),
lambda
(
lambda_
),
theta
(
theta_
),
gamma
(
gamma_
),
nscales
(
nscales_
),
warps
(
warps_
),
epsilon
(
epsilon_
),
innerIterations
(
innerIterations_
),
outerIterations
(
outerIterations_
),
useInitialFlow
(
useInitialFlow_
),
scaleStep
(
scaleStep_
),
medianFiltering
(
medianFiltering_
)
{
}
OpticalFlowDual_TVL1
();
void
calc
(
InputArray
I0
,
InputArray
I1
,
InputOutputArray
flow
);
...
...
@@ -1450,3 +1461,13 @@ Ptr<DualTVL1OpticalFlow> cv::createOptFlow_DualTVL1()
{
return
makePtr
<
OpticalFlowDual_TVL1
>
();
}
Ptr
<
DualTVL1OpticalFlow
>
cv
::
DualTVL1OpticalFlow
::
create
(
double
tau
,
double
lambda
,
double
theta
,
int
nscales
,
int
warps
,
double
epsilon
,
int
innerIterations
,
int
outerIterations
,
double
scaleStep
,
double
gamma
,
int
medianFilter
,
bool
useInitialFlow
)
{
return
makePtr
<
OpticalFlowDual_TVL1
>
(
tau
,
lambda
,
theta
,
nscales
,
warps
,
epsilon
,
innerIterations
,
outerIterations
,
scaleStep
,
gamma
,
medianFilter
,
useInitialFlow
);
}
modules/video/test/test_tvl1optflow.cpp
View file @
6e3b90de
...
...
@@ -154,7 +154,7 @@ TEST(Video_calcOpticalFlowDual_TVL1, Regression)
ASSERT_FALSE
(
frame2
.
empty
());
Mat_
<
Point2f
>
flow
;
Ptr
<
D
enseOpticalFlow
>
tvl1
=
createOptFlow_DualTVL1
();
Ptr
<
D
ualTVL1OpticalFlow
>
tvl1
=
cv
::
DualTVL1OpticalFlow
::
create
();
tvl1
->
calc
(
frame1
,
frame2
,
flow
);
...
...
samples/cpp/tvl1_optical_flow.cpp
View file @
6e3b90de
...
...
@@ -185,7 +185,7 @@ int main(int argc, const char* argv[])
}
Mat_
<
Point2f
>
flow
;
Ptr
<
D
enseOpticalFlow
>
tvl1
=
createOptFlow_DualTVL1
();
Ptr
<
D
ualTVL1OpticalFlow
>
tvl1
=
cv
::
DualTVL1OpticalFlow
::
create
();
const
double
start
=
(
double
)
getTickCount
();
tvl1
->
calc
(
frame0
,
frame1
,
flow
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment