opencv之灰度图强角点检测

来源:互联网 发布:边锋游戏大厅mac 编辑:程序博客网 时间:2024/05/20 17:40

本文需要了解的库函数:

void cvGoodFeaturesToTrack( const CvArr* image, CvArr* eig_image, CvArr* temp_image,                            CvPoint2D32f* corners, int* corner_count,                            double quality_level, double min_distance,                            const CvArr* mask=NULL );

演示代码

#include<cv.h>#include<highgui.h>#include<stdio.h>#include<malloc.h>#pragma comment(lib,"cv.lib")#pragma comment(lib,"cxcore.lib")#pragma comment(lib,"highgui.lib")#pragma comment(lib,"cvaux.lib")/***********************************************************************************  本程序是强角点检测演示例程*  作者:xlh145*  博客:http://blog.csdn.net/xlh145/**********************************************************************************/IplImage * image =NULL;IplImage * gray =NULL;IplImage * dist =NULL; //显示图像//下面是两幅检测角点的临时图像IplImage * eig_image =NULL;IplImage * temp_image =NULL;int quality_level=0; //最小质量因子int min_distance = 40;//角点间的最小欧氏距离void OnTrack(int ){cvZero(dist);//清空图像cvCopy(image,dist);//拷贝原始数据CvPoint2D32f corners[200];//保存角点坐标 最大检测200个点int count=200;//角点坐标double level = (double)quality_level/100+0.02;double distance = (double)min_distance;cvGoodFeaturesToTrack(gray,eig_image,temp_image, corners,&count,level,distance,NULL); //角点检测for(int i=0;i<count;i++){CvPoint center;center.x = cvRound(corners[i].x);center.y = cvRound(corners[i].y);cvCircle(dist,center,5,CV_RGB(255,0,0),1,8,0);} cvShowImage("角点",dist);}int main(){    image = cvLoadImage("2.jpg",1); //加载dist = cvCloneImage(image);gray = cvCreateImage(cvGetSize(image),IPL_DEPTH_8U,1);eig_image = cvCreateImage(cvGetSize(image),IPL_DEPTH_32F,1);temp_image = cvCreateImage(cvGetSize(image),IPL_DEPTH_32F,1);cvCvtColor(image,gray,CV_BGR2GRAY); //灰度转换cvNamedWindow("角点",1);cvCreateTrackbar("quality_level","角点",&quality_level,100,OnTrack);cvCreateTrackbar("min_distance","角点",&min_distance,200,OnTrack);OnTrack(0);cvWaitKey(0);//释放数据cvReleaseImage(&image);cvReleaseImage(&dist);cvReleaseImage(&gray);cvReleaseImage(&eig_image);cvReleaseImage(&temp_image);cvDestroyWindow("角点");return 0;}


原创粉丝点击