模板匹配矩形的简单二进制图像

时间:2016-05-30 11:50:07

标签: opencv image-processing template-matching

我有一组由二进制矩形组成的训练图像。我需要编写一个程序,它接收另一个二进制图像(具有噪声,缩放,旋转和矩形位置的轻微移动)并在训练集中找到最接近的匹配图像

e.g。 输入图片:

Input image

受过训练的图片:应与此匹配

Trained image1

受过训练的图片:不应与此匹配

Trained image 2

据我所知,有3种方法。

  1. 模板匹配:我生成一组用于模板匹配的训练图像的缩放和旋转变体。我遇到这种方法的问题是,得分最高的训练图像总是缩小的例子,大多数白色矩形(因为如果最白的例子适合输入中的一个白色矩形,将会找到接近完美的匹配图像)

  2. 特征匹配:据我所知,特征匹配依赖于图像中某些像素(或像素的小区域)是唯一的这一事实。但是,由于每个边/角看起来与任何其他边/角完全相同,因此在这种情况下,要素匹配将失败。 (如果我错了,请纠正我)

  3. 手动编码矩形信息(例如方向,位置等),基本上为模板创建自己的描述符并尝试匹配。 (有没有办法为大图像/模板生成描述符?)

  4. 有人可以就如何处理这个问题向我提出建议吗?

1 个答案:

答案 0 :(得分:0)

我最终使用了我的第一种方法

模板匹配:我生成一组用于模板匹配的训练图像的缩放和旋转变体。我遇到这种方法的问题是,得分最高的训练图像总是缩小的例子,大多数白色矩形(因为如果最白的例子适合输入中的一个白色矩形,将会找到接近完美的匹配图像)

但是为了解决它主要将白色模板与查询图像的白色区域进行盲目匹配的问题,我将缩小的图像用黑色空间填充,以便当白色模板的周围也是白色时对其进行处罚。

适合我的需要。