模板匹配亚像素精度

Nik*_*pra 2 c++ algorithm opencv image image-processing

我使用模板匹配来检测图像中的特定模式。确定的偏移非常不稳定。目前我将它分别应用于 R、G、B 通道并平均结果以获得浮点值。请建议如何获得亚像素精度。我打算调整图像大小,然后以原始比例返回数据,请提出其他更好的方法。

跟踪 x_坐标.

我使用 Opencv 站点上提到的代码“ http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html

Spa*_*Bot 5

我相信潜在的问题是minMaxLoc只有像素精度。你可以尝试一个像素精确的补丁http://www.longrange.net/Temp/CV_SubPix.cpp这里从讨论:http://answers.opencv.org/question/29665/getting-subpixel-with-matchtemplate / .

作为一个快速而肮脏的实验,如果亚像素精确 minMaxLoc 可以解决您的问题,您可以使用三次插值将模板匹配结果图像放大(例如,放大 4 倍)INTER_CUBIC http://docs.opencv.org/ 2.4/modules/imgproc/doc/geometric_transformations.html#resize并应用minMaxLoc它。(与线性插值相反,三次插值确实会移动最大值。)

除此之外,您始终可以将高斯模糊应用于输入图像和模板匹配结果,以减少高频噪声并抑制局部最大值。

我会先尝试快速实验。如果有帮助,您可以集成minMaxLogSubPix实现,但这需要更长的时间。