【发布时间】:2016-05-30 11:50:07
【问题描述】:
我有一组由二进制矩形组成的训练图像。我需要编写一个程序来接收另一个二进制图像(带有噪声、缩放、旋转和矩形位置的轻微移动)并在训练集中找到最接近的匹配图像
例如 输入图片:
训练好的图片:应该和这个匹配
经过训练的图像:不应与此匹配
据我所知,有 3 种方法。
模板匹配:我为模板匹配生成一组训练图像的缩放和旋转变体。我遇到这种方法的问题是,得分最高的训练图像始终是具有最多白色矩形的按比例缩小的示例(因为如果最白的示例适合输入中的一个白色矩形,则会找到近乎完美的匹配图片)
特征匹配:据我了解,特征匹配依赖于图像中的某些像素(或小像素区域)是唯一的这一事实。但是,由于每个边/角看起来都与任何其他边/角完全相同,因此在这种情况下特征匹配将失败。 (如有错误请指正)
手动编码矩形信息(例如方向、位置等),基本上是为模板创建我自己的描述符并尝试匹配。 (有没有办法为大图像/模板生成描述符?)
谁能告诉我如何处理这个问题?
【问题讨论】:
-
我认为找到轮廓并过滤它们是一种更简单的方法。看看stackoverflow.com/a/33860887/5294258
标签: opencv image-processing template-matching