OpenCV
5.0.0alpha
Open Source Computer Vision
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