OpenCV根据图像的HU矩进行图像的匹配,然后选择匹配度高的,在众多图像中进行目标的识别。
工具/原料
OpenCV开源计算图像识别库
VS2010
方法/步骤
1、加载目标图像,目标图像即其他图像与它匹配时的模板,注意目标图像和其他图像都应为二值图。IplImage*src1=cvLoadImage("..\\TestPictureData\\BI6-1.jpg",CV_LOAD_IMAGE_UNCHANGED);
2、加载其他待识别图像,这里通过数组存储加载的其他待识别图像,且这些图闻赙酵枭像的命名应具有一定的规律性,这里命名为BI9.jpg到BI20.jpg。IplImage*pScr;charfilena罪焐芡拂me[20];charwindowname[20]; for(inti=9;i<=20;i++){ doubleresult=0.0; doublethreshold=0.001; sprintf(filename,"..\\TestPictureData\\BI%d.jpg",i);sprintf(windowname,"window%d.jpg",i);pScr=cvLoadImage(filename,CV_LOAD_IMAGE_UNCHANGED);result=cvMatchShapes(src1,pScr,1,0); if(result<threshold) { cvShowImage("2",pScr); printf("OpenCV图像匹配目标识别\n"); printf("\n"); printf("resultis:%f\n",result); printf("\n"); printf("道路指示线\n"); printf("\n"); } }
3、运酚祯馄嫱行打印出识别结果图,并释放图像内存空间,和释放显示窗口。//输出结果 cvShowImage("1",src1);cvShowImage("2"荑樊综鲶,pScr);cvWaitKey(0);//释放图像内存空间 cvReleaseImage(&src1); cvReleaseImage(&pScr);