手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

OpenCV之图像匹配

时间:2024-10-14 04:13:05

1、首先加载两幅需要进行匹配的图像,注意匹配函数cvMatchShapes()需要传入的是二值图,所以一开始需要先将图像二值化。为了进行一个明显的对比,第一次加载两幅图像是一样的,只是大小不一样。//加载图像一 IplImage * src1 = cvLoadImage("..\\TestPictureData\\BI3-1_1.bmp",CV_LOAD_IMAGE_UNCHANGED); //加载图像二 IplImage * src2 = cvLoadImage("..\\TestPictureData\\BI3-1_1.bmp",CV_LOAD_IMAGE_UNCHANGED);

OpenCV之图像匹配
OpenCV之图像匹配

2、调用函数cvMatchShapes(src1,src2,1,0)进行两幅兔脒巛钒图像的匹配,参数1参数2是需要匹配的两幅图像,参数3是匹配的方法,这里有三种方法,不同的方法其内在的实现方式有一定的区别,推荐使用第一二种方法,第三种方法具有不稳定性,第四个参数按默认0即可。显示打印出结果,可以看出HU矩距离非常小为0.000265。//通过计算HU矩,进行比较两幅图像的相似性 double result; result = cvMatchShapes(src1,src2,1,0);//返回的是两个图像或轮廓之间hu矩的相似度 //输出结果 printf("result is %f \n",result); cvShowImage("1",src1); cvShowImage("2",src2);

OpenCV之图像匹配

3、将输入的第二幅图像换成差别较大的图像,再进行计算HU矩的距离,进行图像的匹配,对比出差异。//加载图像一IplImage * src1 = cvLoadImage("..\\TestPictureData\\BI3-1_1.bmp",CV_LOAD_IMAGE_UNCHANGED);//加载图像二IplImage * src2 = cvLoadImage("..\\TestPictureData\\BI1-1.jpg",CV_LOAD_IMAGE_UNCHANGED);

OpenCV之图像匹配
OpenCV之图像匹配

4、计算对比分析得到结果,结果为0.011623。距离值是上述两幅一样图像的100倍多,可见OpenCV中函数cvMatchShapes()对图像的匹配是非常的有效。

OpenCV之图像匹配
© 手抄报圈