|
分享源码
界面截图: |
- |
是否带模块: |
- |
备注说明: |
- |
通过轮廓的最小外接圆范围内的点的颜色直方图进行查找匹配,最小外接圆区域总体上不受图像旋转的影响,实际上图像旋转可能会像素插值,故轮廓面积不能太小,插值容易引起较大误差。另外:不同图像中的相同轮廓的面积大小不一致,需缩放轮廓至相同尺寸;或者:轮廓太大时,直方图计算慢,缩放轮廓到相同的较小尺寸;在缩放的过程中也会导致像素的增加、减少。但是,以上总体上都不影响颜色直方图计算图像相似度。最后,小图在大图中匹配定位时,大图可能出现相同的两个或多个轮廓,此时,小图中对应的轮廓,可能匹配大图错误的位置,此时通过匹配点间的线段长度进行筛选即可。
--------------------------------
1、二值化并取轮廓。其中,两图使用相同二值化阈值,常为大图使用小图的阈值。
2、计算轮廓的最小外接圆。
3、根据半径大小删除面积太小的轮廓。
4、根据最小外接圆截图。实际截图的图为矩形,故:将非外接圆的边缘区域的点置为白色。
5、缩放截图到相同尺寸。(统一轮廓尺寸,减少计算量。)
6、对所有截图进行颜色直方图统计。在统计时,直方图忽略“白色点”的统计。(旋转不变)
7、遍历计算大、小颜色直方图的相似度。
8、根据遍历相似度,取出小图、大图的最佳轮廓匹配。
9、根据:线段(匹配小圆心[i],匹配小圆心[j]) 与 线段(匹配大圆心[i],匹配大圆心[j])之间的 “匹配线段缩放比例” 始终为固定值(如:差异波动<10%)。遍历所有“匹配线段”的 “匹配线段缩放比例” ,对“匹配线段缩放比例” 进行“相似大小”归类,筛选并删除错误匹配。
10、根据9中的匹配结果点(匹配_小圆心),进行仿射变换计算,得到小图在大图中的矩形区域。
-----------结束----------------
|
-
缩放 不旋转 匹配
-
缩放 旋转 匹配
|