OpenCV多图像之目标识别
1、加载目标图像,目标图像即其他图像与它匹配时的模板,注意目标图像和其他图像都应为二值图。
IplImage * src1 = cvLoadImage("..\\TestPictureData\\BI6-1.jpg",CV_LOAD_IMAGE_UNCHANGED);

2、加载其他待识别图像,这里通过数组存储加载的其他待识别图像,且这些图像的命名应具有一定的规律性,这里命名为BI9.jpg到BI20.jpg。
IplImage * pScr;
char filename[20];
char windowname[20];
for(int i=9;i<=20;i++)
{
double result = 0.0;
double threshold = 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("result is: %f \n",result);
printf("\n");
printf("道路指示线\n");
printf("\n");
}
}

3、运行打印出识别结果图,并释放图像内存空间,和释放显示窗口。
//输出结果
cvShowImage("1",src1);
cvShowImage("2",pScr);
cvWaitKey(0);
//释放图像内存空间
cvReleaseImage(&src1);
cvReleaseImage(&pScr);
