【问题标题】:What is the difference between phase correlation and template matching in OpenCV?OpenCV中的相位相关和模板匹配有什么区别?
【发布时间】:2016-09-05 18:05:01
【问题描述】:
【问题讨论】:
标签:
opencv
fft
feature-detection
【解决方案1】:
相位相关和对数极坐标变换是在频域中实现的,这两种算法都是从傅里叶位移定理推导出来的,即两个翻译后的图像在频域中会显示出相似的相位差。相位相关能够仅记录平移运动,而对数极坐标变换在对数极坐标域中工作,其本质上将旋转和尺度变化转换为线性平移。因此,使用对数极坐标匹配,您可以注册两个相互缩放旋转和平移副本的图像。这两种算法都不能注册可变形变换。有关这些算法可以确定的模糊度和旋转范围和尺度变化的详细分析,您可以参考这篇论文“http://ieeexplore.ieee.org/document/901003/”。
模板匹配本质上是使用各种相似性指标(差平方和、归一化互相关、豪斯多夫距离等)在基础图像中查找已知模板的存在。因此,匹配可以应用于空间属性(强度图像、边缘图、HOG)或频率属性(相位)。相位相关和对数极坐标匹配可以在相同大小的图像上实现,因此基于相位的模板匹配基本上对应于在搜索空间中找到具有最高相关值的相同块。
SIFT、SURF 等根据各种参数生成一个大的特征向量集,使其不受尺度变化、噪声和光照变化的影响。这是一个非常广泛的话题,网上有很多论文比较它们的功能。
根据我的经验 SIFT,SURF 是一个更强大的分类器,可以将对象定位在单帧中,但如果您计划在计算时间是限制因素的视频中定位对象,那么模板匹配会更好。