代码改变世界

OpenCV下的角点获取

2011-09-06 19:44  ubunoon  阅读(540)  评论(0编辑  收藏  举报

昨天无意中浏览看到角点的概念,并加上想要切换到OpenCV的平台上,因此网上搜了一下,测试了一下面的角点测试代码;

int main(int argc, char *argv[])
{

	CvPoint2D32f pt[200];
	int cornerCount = 30;
	IplImage *src = cvLoadImage("harris.png");
	
	IplImage *grayImage = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1);
	IplImage *eigimg = cvCreateImage(cvGetSize(src), IPL_DEPTH_32F, 1);
	IplImage *tmpimg = cvCloneImage(eigimg);

	cvCvtColor(src, grayImage, CV_BGR2GRAY);
	cvGoodFeaturesToTrack(grayImage, eigimg, tmpimg, pt, &cornerCount, 0.1, 10, NULL, 3, 0, 0.04);
	
	for (int i=0; i<cornerCount; ++i)
	{
		cvDrawCross(src, pt[i]);   // 这个是自己写的一个辅助函数
	}

	cvNamedWindow("corner detection", CV_WINDOW_AUTOSIZE);
	cvShowImage("corner detection", src);


	cvWaitKey(0);
	return 0;
}
 
测试前后对比图像如下:
normal   cornerpoint