Visual Servoing Platform
version 3.7.0
Toggle main menu visibility
Loading...
Searching...
No Matches
tutorial-matching-keypoint.cpp
1
2
#include <visp3/core/vpConfig.h>
3
#include <visp3/gui/vpDisplayOpenCV.h>
4
#include <visp3/io/vpImageIo.h>
5
#include <visp3/io/vpVideoReader.h>
7
#include <visp3/vision/vpKeyPoint.h>
9
10
int
main()
11
{
13
#if defined(VISP_HAVE_OPENCV) && defined(HAVE_OPENCV_HIGHGUI) && defined(HAVE_OPENCV_IMGPROC) && \
14
(((VISP_HAVE_OPENCV_VERSION < 0x050000) && defined(HAVE_OPENCV_CALIB3D) && defined(HAVE_OPENCV_FEATURES2D)) || \
15
((VISP_HAVE_OPENCV_VERSION >= 0x050000) && defined(HAVE_OPENCV_3D) && defined(HAVE_OPENCV_FEATURES)))
17
#ifdef ENABLE_VISP_NAMESPACE
18
using namespace
VISP_NAMESPACE_NAME
;
19
#endif
20
vpImage<unsigned char>
I;
21
22
vpVideoReader
reader;
23
reader.
setFileName
(
"video-postcard.mp4"
);
24
reader.
acquire
(I);
25
27
const
std::string detectorName =
"ORB"
;
28
const
std::string extractorName =
"ORB"
;
29
// Hamming distance must be used with ORB
30
const
std::string matcherName =
"BruteForce-Hamming"
;
31
vpKeyPoint::vpFilterMatchingType
filterType =
vpKeyPoint::ratioDistanceThreshold
;
32
vpKeyPoint
keypoint(detectorName, extractorName, matcherName, filterType);
33
std::cout <<
"Reference keypoints="
<< keypoint.buildReference(I) << std::endl;
35
37
vpImage<unsigned char>
Idisp
;
38
Idisp
.resize(I.getHeight(), 2 * I.getWidth());
39
Idisp
.insert(I,
vpImagePoint
(0, 0));
40
Idisp
.insert(I,
vpImagePoint
(0, I.getWidth()));
43
vpDisplayOpenCV
d
(Idisp, 0, 0,
"Matching keypoints with ORB keypoints"
);
44
vpDisplay::display
(Idisp);
45
vpDisplay::flush
(Idisp);
47
48
while
(!reader.
end
()) {
50
reader.
acquire
(I);
51
Idisp
.insert(I,
vpImagePoint
(0, I.getWidth()));
53
55
vpDisplay::display
(Idisp);
56
vpDisplay::displayLine
(Idisp,
vpImagePoint
(0, I.getWidth()),
vpImagePoint
(I.getHeight(), I.getWidth()),
57
vpColor::white
, 2);
59
61
unsigned
int
nbMatch = keypoint.matchPoint(I);
63
64
std::cout <<
"Matches="
<< nbMatch << std::endl;
65
67
vpImagePoint
iPref, iPcur;
68
for
(
unsigned
int
i = 0;
i
< nbMatch;
i
++) {
69
keypoint.getMatchedPoints(i, iPref, iPcur);
72
vpDisplay::displayLine
(Idisp, iPref, iPcur +
vpImagePoint
(0, I.getWidth()),
vpColor::green
);
74
}
76
vpDisplay::flush
(Idisp);
78
79
if
(
vpDisplay::getClick
(Idisp,
false
))
80
break
;
81
}
82
83
vpDisplay::getClick
(Idisp);
84
#endif
85
86
return
EXIT_SUCCESS;
87
}
vpColor::white
static const vpColor white
Definition
vpColor.h:193
vpColor::green
static const vpColor green
Definition
vpColor.h:201
vpDisplayOpenCV
The vpDisplayOpenCV allows to display image using the OpenCV library. Thus to enable this class OpenC...
Definition
vpDisplayOpenCV.h:139
vpDisplay::getClick
static bool getClick(const vpImage< unsigned char > &I, bool blocking=true)
Definition
vpDisplay_uchar.cpp:894
vpDisplay::display
static void display(const vpImage< unsigned char > &I)
Definition
vpDisplay_uchar.cpp:869
vpDisplay::displayLine
static void displayLine(const vpImage< unsigned char > &I, const vpImagePoint &ip1, const vpImagePoint &ip2, const vpColor &color, unsigned int thickness=1, bool segment=true)
Definition
vpDisplay_uchar.cpp:458
vpDisplay::flush
static void flush(const vpImage< unsigned char > &I)
Definition
vpDisplay_uchar.cpp:845
vpImagePoint
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
Definition
vpImagePoint.h:82
vpImage
Definition of the vpImage class member functions.
Definition
vpImage.h:131
vpKeyPoint
Class that allows keypoints 2D features detection (and descriptors extraction) and matching thanks to...
Definition
vpKeyPoint.h:274
vpKeyPoint::vpFilterMatchingType
vpFilterMatchingType
Definition
vpKeyPoint.h:278
vpKeyPoint::ratioDistanceThreshold
@ ratioDistanceThreshold
Definition
vpKeyPoint.h:283
vpVideoReader
Class that enables to manipulate easily a video file or a sequence of images. As it inherits from the...
Definition
vpVideoReader.h:181
vpVideoReader::setFileName
void setFileName(const std::string &filename)
Definition
vpVideoReader.cpp:123
vpVideoReader::end
bool end()
Definition
vpVideoReader.h:255
vpVideoReader::acquire
void acquire(vpImage< vpRGBa > &I) VP_OVERRIDE
Definition
vpVideoReader.cpp:286
VISP_NAMESPACE_NAME
Definition
vpEigenConversion.h:44
yolo-centering-task-afma6.d
d
Definition
yolo-centering-task-afma6.py:273
yolo-centering-task-afma6.Idisp
Idisp
Definition
yolo-centering-task-afma6.py:208
yolo-centering-task-afma6.i
i
Definition
yolo-centering-task-afma6.py:329
tutorial
detection
matching
tutorial-matching-keypoint.cpp
Generated by
1.17.0