二值图的轮廓匹配

CV中有通过几何距和Hu距的来进行的轮廓匹配.
我感受了下,效果不是很好。

首先了解下,一个轮廓给定后,不管放大缩小Hu距不会改变。

处理思路是:
1、 先将两张图片二值化(注意二值化后,背景要为黑色)
2、 提取两幅图的轮廓,一张图是全图轮廓,另一张只是提取最大的轮廓
3, 将提取轮廓分别计算几何距,再计算Hu距。
4、通过调用matchShapes 进行Hu距比较,这里比较有3中方式可以选择。

CONTOURS_MATCH_I1
CONTOURS_MATCH_I2
CONTOURS_MATCH_I3

我的代码地址:https://github.com/cyssmile/openCV_learning_notes/blob/master/opencv_test/opencv_031/opencv_031.cpp
我的实验效果:

这中间在A处有个匹配点,具体原因还不太确定。
可能原因有几点:
一、这幅图选择不合适
二、可能是将背景轮廓计算进去了
还有待观察

posted @ 2020-03-26 21:14  cyssmile  阅读(659)  评论(0编辑  收藏  举报