1 #include <visp3/core/vpImageConvert.h> 4 #include <visp3/gui/vpDisplayOpenCV.h> 5 #include <visp3/io/vpVideoReader.h> 6 #include <visp3/klt/vpKltOpencv.h> 9 int main(
int argc,
const char *argv[])
12 #ifdef VISP_HAVE_OPENCV 15 std::string opt_videoname =
"video-postcard.mp4";
16 bool opt_init_by_click =
false;
17 unsigned int opt_subsample = 1;
18 for (
int i = 0; i < argc; i++) {
19 if (std::string(argv[i]) ==
"--videoname")
20 opt_videoname = std::string(argv[i + 1]);
21 else if (std::string(argv[i]) ==
"--init-by-click")
22 opt_init_by_click =
true;
23 else if (std::string(argv[i]) ==
"--subsample")
24 opt_subsample =
static_cast<unsigned int>(std::atoi(argv[i + 1]));
25 else if (std::string(argv[i]) ==
"--help" || std::string(argv[i]) ==
"-h") {
26 std::cout <<
"Usage: " << argv[0]
27 <<
" [--videoname <video name>] [--subsample <scale factor>] [--init-by-click]" 28 <<
" [--help] [-h]" << std::endl;
41 Iacq.
subsample(opt_subsample, opt_subsample, I);
45 #if (VISP_HAVE_OPENCV_VERSION < 0x020408) 74 if (opt_init_by_click) {
76 #if (VISP_HAVE_OPENCV_VERSION < 0x020408) 77 std::vector<CvPoint2D32f> feature;
79 std::vector<cv::Point2f> feature;
86 feature.push_back(cv::Point2f((
float)ip.
get_u(), (float)ip.
get_v()));
93 #if (VISP_HAVE_OPENCV_VERSION < 0x020408) 105 std::cout <<
"Tracker initialized with " << tracker.
getNbFeatures() <<
" features" << std::endl;
109 while (!reader.
end()) {
112 Iacq.
subsample(opt_subsample, opt_subsample, I);
119 #if (VISP_HAVE_OPENCV_VERSION < 0x020408) 120 std::vector<CvPoint2D32f> feature;
122 std::vector<cv::Point2f> feature;
129 feature.push_back(cv::Point2f((
float)ip.
get_u(), (float)ip.
get_v()));
136 #if (VISP_HAVE_OPENCV_VERSION < 0x020408) 163 #if (VISP_HAVE_OPENCV_VERSION < 0x020408) 164 cvReleaseImage(&cvI);
170 std::cout <<
"Catch an exception: " << e << std::endl;
VISP_EXPORT int wait(double t0, double t)
void setMaxFeatures(int maxCount)
static bool getClick(const vpImage< unsigned char > &I, bool blocking=true)
void setHarrisFreeParameter(double harris_k)
static void convert(const vpImage< unsigned char > &src, vpImage< vpRGBa > &dest)
void subsample(unsigned int v_scale, unsigned int h_scale, vpImage< Type > &sampled) const
static void displayText(const vpImage< unsigned char > &I, const vpImagePoint &ip, const std::string &s, const vpColor &color)
Class that enables to manipulate easily a video file or a sequence of images. As it inherits from the...
void setMinDistance(double minDistance)
error that can be emited by ViSP classes.
int getNbFeatures() const
Get the number of current features.
static const vpColor green
static void flush(const vpImage< unsigned char > &I)
long getFirstFrameIndex()
VISP_EXPORT double measureTimeMs()
void display(const vpImage< unsigned char > &I, const vpColor &color=vpColor::red, unsigned int thickness=1)
void setQuality(double qualityLevel)
bool isVideoFormat() const
void setPyramidLevels(int pyrMaxLevel)
static void display(const vpImage< unsigned char > &I)
The vpDisplayOpenCV allows to display image using the OpenCV library. Thus to enable this class OpenC...
void acquire(vpImage< vpRGBa > &I)
void setWindowSize(int winSize)
void initTracking(const cv::Mat &I, const cv::Mat &mask=cv::Mat())
static void displayCross(const vpImage< unsigned char > &I, const vpImagePoint &ip, unsigned int size, const vpColor &color, unsigned int thickness=1)
long getFrameIndex() const
Wrapper for the KLT (Kanade-Lucas-Tomasi) feature tracker implemented in OpenCV. Thus to enable this ...
void setUseHarris(int useHarrisDetector)
void setFileName(const std::string &filename)
Class that defines a 2D point in an image. This class is useful for image processing and stores only ...
void setBlockSize(int blockSize)
void track(const cv::Mat &I)