2016-07-07 166 views
0

我在Emgu CV中使用Image类和它的MatchTemplate方法来检测图片中的图案。所以,我的照片是黑白色(256灰色变体),我必须搜索白色模板,但我如何存储它们?如果我使用只有2种颜色的.png:图案为白色,背景为黑色 - 则MatchTemplate方法会考虑模板的背景部分(并且这会破坏结果)。我在模式中使用什么颜色背景?Emgu CV - 在匹配模板时忽略颜色

UPD:已添加图片。

模式(只白色三角形需要):

Pattern

形象的例子(简单的):

Image

检测(白方是我所得到的,红色的 - 我需要什么): Detection

+0

如果您只需要白色三角形,为什么不从模板中删除黑色边框? – TheLethalCoder

回答

0

请阅读下面的内容: http://docs.opencv.org/2.4/modules/imgproc/doc/object_detection.html?highlight=matchtemplate#matchtemplate

你显然不知道matchTemplate是如何工作的。

您不能简单地选择一种颜色来忽略背景。算法总是计算模板和某个图像区域之间的一些差异度量。除非图像和模板背景相同,否则您将始终有影响力。

如果你想“忽略”背景,你将不得不在每次迭代时用图像区域替换背景,这样背景差异变为0或者对于每个像素至少都是相同的。这听起来不太有效。

提供输入图像和模板示例。您的问题最有可能是更好的解决方案。

+0

已将图片添加到我的帖子中。 – JustLogin

+0

我不明白你的问题。 matchTemplate通过一组相关值给出一个位置。这与你的矩形的大小有什么关系?该中心似乎是一样的。 – Piglet