Skip to main content

Posts

Showing posts with the label logpolar transform

OPENCV2 C++ basics (OOP) old style vs new style

Version 2.2 of the opencv library has divided its library into modules. These library modules have their own associated header files which is required therefore any code you see on the internet that looks like this: #include "cv.h" #include <cv.h> and so on is done using the old style, C or C++. However after the restructuring of the opencv library into modules, not all functionality was ported to the new style: #include <opencv2/core/core.hpp> one example of such method is the LOGPOLAR transform. Another thing to take note here is, the old deprecated IplImage is changed to the matrix cv::Mat. therefore you should avoid using such unless your using the old style. For the Log-Polar Transform i will be using this header file: #include <opencv2/imgproc/imgproc_c.h> Also to make things easy, ive created a class to convert between cv::Mat and IplImage class atsoldtonew { public:     IplImage convertOld(cv::Mat MatImage)     { ...

logpolar transform using Camera

The logpolar transform function emulates the human “foveal” vision and can be used for fast scale and rotation-invariant template matching , for object tracking and so forth. The function can not operate in-place. "The foveal system of the human eye is the only part of the retina that permits 100% visual acuity. The line-of-sight is a virtual line connecting the fovea with a fixation point in the outside world." Wikipedia; Code: #include <opencv2/video/tracking.hpp> #include <opencv2/highgui/highgui.hpp> #include <stdio.h> #include <opencv2/objdetect/objdetect.hpp> #include <opencv2/features2d/features2d.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/calib3d/calib3d.hpp> #include <opencv2/imgproc/imgproc_c.h> #include <opencv2/video/tracking.hpp> #include <iostream> #include <vector> int main(int argc, char** argv) { CvCapture *capture = 0; IplImage *src = 0; /* initialize camera ...