使用opencv cvMatchTemplate时,如何选择好的模板进行更精准的匹配?
when using opencv cvMatchTemplate, how to choose a good template for more accurate matching?
我正在使用 opencv cvMatchTemplate 在一堆图像中查找商标图案。
现在我所做的就是看图片,从商标中找到一些独特的补丁,并将其用作我的模板。
我发现使用整个商标图像并不一定比使用其中的一部分更好。我的问题是
这正常吗?或者我做错了。
如果是正常的,如何选择好的模板才能更准确的匹配呢?
或者说select好的模板背后有什么数学理论可以帮助我select最好的模板
我没有使用特征检测,因为我发现它作为模板匹配并不准确。
为什么模板匹配与特征检测一样有效(当每个人似乎都喜欢特征检测时)
模板匹配不同于特征检测,因为它假定您要查找的内容与模板位于同一平面(图像平面)。 “变形”模板将不起作用(与变形模板匹配的模板称为数字图像相关)。
因此,如果您要在与相机对齐的 sheet 纸张图像中寻找徽标,那么模板匹配就是您的事,但如果您要在随机文件中寻找徽标街道图像,然后进行特征检测。
模板匹配是如何工作的?
好吧,openCV 有一个很好的例子:
http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html
为什么一个模板的效果和整个模板一样好?
但是您想知道为什么只是模板的一部分就和整个模板一样好(并非总是如此,但可能会发生)。
这很容易理解:模板的“部分”有足够的信息可以识别。
示例*:
如果我让你找下图,你能找准吗?
我希望答案是肯定的。为什么不需要整张图片才能找到它?
->
因为图像的那部分信息足够多,可以准确识别!你不需要整张图片!
但是,如果我给你下面的图片:
您将无法识别该徽标,因为至少还有 3 或 4 个其他徽标带有黄色。
我怎么知道我的模板是否足够好?
没有办法“肯定”知道一个模板是否足以被唯一识别,但有办法知道图像中是否有信息。
由于模板匹配依赖于相关系数和平方和系数,这意味着模板具有的“不同”信息量越多越好。这可以用图像梯度的总和来近似。
计算模板在X和Y方向的梯度并求和,然后求和。这个数字越大,模板越好!**
*徽标是一个很好的例子,我与这些公司没有任何关系。
中得到了数学证明
我正在使用 opencv cvMatchTemplate 在一堆图像中查找商标图案。
现在我所做的就是看图片,从商标中找到一些独特的补丁,并将其用作我的模板。 我发现使用整个商标图像并不一定比使用其中的一部分更好。我的问题是
这正常吗?或者我做错了。
如果是正常的,如何选择好的模板才能更准确的匹配呢?
或者说select好的模板背后有什么数学理论可以帮助我select最好的模板
我没有使用特征检测,因为我发现它作为模板匹配并不准确。
为什么模板匹配与特征检测一样有效(当每个人似乎都喜欢特征检测时)
模板匹配不同于特征检测,因为它假定您要查找的内容与模板位于同一平面(图像平面)。 “变形”模板将不起作用(与变形模板匹配的模板称为数字图像相关)。
因此,如果您要在与相机对齐的 sheet 纸张图像中寻找徽标,那么模板匹配就是您的事,但如果您要在随机文件中寻找徽标街道图像,然后进行特征检测。
模板匹配是如何工作的?
好吧,openCV 有一个很好的例子: http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html
为什么一个模板的效果和整个模板一样好?
但是您想知道为什么只是模板的一部分就和整个模板一样好(并非总是如此,但可能会发生)。
这很容易理解:模板的“部分”有足够的信息可以识别。
示例*:
如果我让你找下图,你能找准吗?
我希望答案是肯定的。为什么不需要整张图片才能找到它?
->
因为图像的那部分信息足够多,可以准确识别!你不需要整张图片!
但是,如果我给你下面的图片:
您将无法识别该徽标,因为至少还有 3 或 4 个其他徽标带有黄色。
我怎么知道我的模板是否足够好?
没有办法“肯定”知道一个模板是否足以被唯一识别,但有办法知道图像中是否有信息。
由于模板匹配依赖于相关系数和平方和系数,这意味着模板具有的“不同”信息量越多越好。这可以用图像梯度的总和来近似。
计算模板在X和Y方向的梯度并求和,然后求和。这个数字越大,模板越好!**
*徽标是一个很好的例子,我与这些公司没有任何关系。
中得到了数学证明