防止不正确的模板匹配OpenCV

时间:2016-03-08 00:55:10

标签: java opencv

我在项目中使用模板匹配来查找较大图像中subimage的所有位置。我正在使用OpenCV方法templateMatch()floodFill()(在Java中)来完成此任务,并且它正常工作,但仅适用于包含subimage的较大图像。

Imgproc.matchTemplate(image, subimage, result, Imgproc.TM_CCOEFF);

如果较大的图片不包含它,我会返回一个错误位置的大量列表。我想要所有的位置(如果子图像存在于较大的图像中),但如果没有,则为NONE。我该怎么做呢?如果模板匹配不是正确的方法,那么我应该采用什么方式呢?

顺便说一句,我的代码的结构类似于Java opencv template matching and floodfill behavior.

非常感谢所有帮助!

1 个答案:

答案 0 :(得分:0)

你有办法尝试,我知道你提到的问题,无论如何,我找到了一个解决方案,你可以对结果图像进行阈值操作,例如在图像中找到任何匹配时的模板匹配一个sumimage,然后该位置将显示为白色,当它发现良好匹配时颜色可以更白,所以你可以阈值图像提取好找到的位置,然后你可以找到轮廓或一些获取轮廓位置的其他操作。希望它可以帮到你!