OpenCV
4.12.0-dev
4.11.0
5.0.0-pre
5.0.0alpha
4.10.0
4.9.0
4.8.0
4.7.0
4.6.0
4.5.5
4.5.4
4.5.3
4.5.2
4.5.1
4.5.0
4.4.0
4.3.0
4.2.0
4.1.2
4.1.1
4.1.0
4.0.1
4.0.0
3.4.20-dev
3.4.20
3.4.19
3.4.18
3.4.17
3.4.16
3.4.15
3.4.14
3.4.13
3.4.12
3.4.11
3.4.10
3.4.9
3.4.8
3.4.7
3.4.6
3.4.5
3.4.4
3.4.3
3.4.2
3.4.1
3.4.0
3.3.1
3.3.0
3.2.0
3.1.0
3.0.0
Open Source Computer Vision
Toggle main menu visibility
Main Page
Related Pages
Namespaces
Namespace List
Classes
Class List
Class Index
Files
Files index
Global objects
All
_
a
c
d
f
g
h
i
k
l
m
n
o
r
s
t
u
v
Functions
_
a
c
h
m
n
u
v
Variables
Typedefs
c
i
n
s
u
v
Enumerations
Enumerator
c
n
Macros
_
c
d
f
g
h
i
l
m
n
o
r
s
t
u
v
Examples
Java documentation
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
samples/cpp/snippets/phase_corr.cpp
An example using the phaseCorrelate function
#include "
opencv2/core.hpp
"
#include "
opencv2/videoio.hpp
"
#include "
opencv2/highgui.hpp
"
#include "
opencv2/imgproc.hpp
"
using namespace
cv
;
int
main
(
int
,
char
* [])
{
VideoCapture
video(0);
Mat
frame, curr, prev, curr64f, prev64f, hann;
char
key;
do
{
video >> frame;
cvtColor(frame, curr, COLOR_RGB2GRAY);
if
(prev.
empty
())
{
prev = curr.
clone
();
createHanningWindow(hann, curr.
size
(),
CV_64F
);
}
prev.
convertTo
(prev64f,
CV_64F
);
curr.
convertTo
(curr64f,
CV_64F
);
Point2d
shift = phaseCorrelate(prev64f, curr64f, hann);
double
radius = std::sqrt(shift.
x
*shift.
x
+ shift.
y
*shift.
y
);
if
(radius > 5)
{
// draw a circle and line indicating the shift direction...
Point
center(curr.
cols
>> 1, curr.
rows
>> 1);
circle(frame, center, (
int
)radius,
Scalar
(0, 255, 0), 3, LINE_AA);
line(frame, center,
Point
(center.
x
+ (
int
)shift.
x
, center.
y
+ (
int
)shift.
y
),
Scalar
(0, 255, 0), 3, LINE_AA);
}
imshow(
"phase shift"
, frame);
key = (char)waitKey(2);
prev = curr.
clone
();
}
while
(key != 27);
// Esc to exit...
return
0;
}
cv::Mat
n-dimensional dense array class
Definition
mat.hpp:951
cv::Mat::clone
CV_NODISCARD_STD Mat clone() const
Creates a full copy of the array and the underlying data.
cv::Mat::size
MatSize size
Definition
mat.hpp:2448
cv::Mat::cols
int cols
Definition
mat.hpp:2425
cv::Mat::empty
bool empty() const
Returns true if the array has no elements.
cv::Mat::rows
int rows
the number of rows and columns or (-1, -1) when the matrix has more than 2 dimensions
Definition
mat.hpp:2425
cv::Mat::convertTo
void convertTo(OutputArray m, int rtype, double alpha=1, double beta=0) const
Converts an array to another data type with optional scaling.
cv::Point_< double >
cv::Point_::y
_Tp y
y coordinate of the point
Definition
types.hpp:202
cv::Point_::x
_Tp x
x coordinate of the point
Definition
types.hpp:201
cv::Scalar_< double >
cv::VideoCapture
Class for video capturing from video files, image sequences or cameras.
Definition
videoio.hpp:727
CV_64F
#define CV_64F
Definition
interface.h:82
highgui.hpp
main
int main(int argc, char *argv[])
Definition
highgui_qt.cpp:3
core.hpp
imgproc.hpp
cv
Definition
core.hpp:107
videoio.hpp
Generated on Thu Dec 5 2024 12:18:45 for OpenCV by
1.12.0