OpenCV

특징점 추출

김연호님 2016. 4. 13. 22:51

#include <opencv/cv.h>

#include <opencv/highgui.h>


const int MAX_CORNERS = 50;


int main(void) {



IplImage* src = cvLoadImage("C:/Users/Administrator/Desktop/pop.png", CV_LOAD_IMAGE_GRAYSCALE);

IplImage* showImg = cvLoadImage("C:/Users/Administrator/Desktop/pop.png", CV_WINDOW_AUTOSIZE);



IplImage* eig_image = cvCreateImage(cvGetSize(src), IPL_DEPTH_32F, 1);

IplImage* temp_image = cvCreateImage(cvGetSize(src), IPL_DEPTH_32F, 1);

CvPoint2D32f* corners = new CvPoint2D32f[MAX_CORNERS];

int corner_count = MAX_CORNERS;

cvNamedWindow("corners", CV_WINDOW_AUTOSIZE);


cvGoodFeaturesToTrack(src, eig_image, temp_image, corners, &corner_count,

0.05, 15.0, 0, 3, 0, 0.04);


for (int i = 0; i<corner_count; i++) {

printf("{%f, %f}\n", corners[i].x, corners[i].y);

cvCircle(showImg, cvPoint(corners[i].x, corners[i].y), 5, CV_RGB(255, 0, 0), -1, 8);

}


cvShowImage("corners", showImg);

cvWaitKey(0);

cvReleaseImage(&src);

cvDestroyWindow("corners");

}