#include <stdio.h>
#include <cv.h>
#include <highgui.h>
int main()
{
int cornersCount=100;//得到的角点数目
CvPoint2D32f corners[100];//输出角点集合
IplImage *src = 0,*gray = 0,*first = 0,*second = 0;
int i;
char *filename = "D:/a_project/车牌图片/14.jpg";
src = cvLoadImage(filename,1);
gray = cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1);
//复制并转为灰度图像
cvCvtColor(src,gray,CV_BGR2GRAY);
//两幅临时32位浮点图像,cvGoodFeaturesToTrack会用到
first = cvCreateImage(cvGetSize(src),IPL_DEPTH_32F,1);
second = cvCreateImage(cvGetSize(src),IPL_DEPTH_32F,1);
cvGoodFeaturesToTrack(gray,first,
second,corners,
&cornersCount,0.05,
25,//角点的最小距离
0,//整个图像
3,0,0.4);
//默认值
//开始画出每个点
if (cornersCount>0)
{
for (i=0;i<cornersCount;i++)
{
cvCircle(src,cvPoint((int)(corners[i].x),(int)(corners[i].y)),
2, CV_RGB(255,0,0),2,CV_AA,0);
}
}
cvNamedWindow("图",1);
cvShowImage("图",src);
cvReleaseImage(&src);
cvReleaseImage(&gray);
cvReleaseImage(&first);
cvReleaseImage(&second);
cvWaitKey(0);
return 0;
}
opencv 角点检测
最新推荐文章于 2023-09-12 14:25:57 发布