Java 防止不正确的模板匹配OpenCV
我在一个项目中使用模板匹配来查找较大图像中Java 防止不正确的模板匹配OpenCV,java,opencv,Java,Opencv,我在一个项目中使用模板匹配来查找较大图像中子图像的所有位置。我正在使用OpenCV方法templateMatch()和floodFill()(Java)来实现这一点,它工作正常,但仅适用于包含子图像的较大图像 Imgproc.matchTemplate(image, subimage, result, Imgproc.TM_CCOEFF); 如果较大的图像不包含它,我会收到一个巨大的错误位置列表。我想要所有的位置(如果子图像存在于较大的图像中),但如果它不存在,则一个也不要。我该怎么做呢?如果
子图像的所有位置。我正在使用OpenCV
方法templateMatch()
和floodFill()
(Java)来实现这一点,它工作正常,但仅适用于包含子图像的较大图像
Imgproc.matchTemplate(image, subimage, result, Imgproc.TM_CCOEFF);
如果较大的图像不包含它,我会收到一个巨大的错误位置列表。我想要所有的位置(如果子图像存在于较大的图像中),但如果它不存在,则一个也不要。我该怎么做呢?如果模板匹配不是正确的方法,那么我应该怎么做呢
顺便说一句,我的代码结构如下
非常感谢您的帮助 有一种方法可以尝试,我知道你提到的问题,无论如何,我找到了一个解决方案,那就是你可以对结果图像执行阈值操作,例如,当在summage
的图像中找到任何匹配时,模板匹配,然后位置将显示为白色,当发现匹配良好时,颜色可以更白,因此您可以对图像进行阈值处理,以提取找到的良好位置,然后您可以执行查找轮廓或其他操作以获得轮廓位置。希望它能帮助你