缩放和旋转 模板匹配
scale and rotation Template matching
我正在使用与CV_TM_CCORR_NORMED
匹配模板的方法来比较两张图像......我想使这种旋转和缩放不变..有什么想法吗?
我尝试在图像和模板的傅里叶变换上使用相同的方法,但旋转后的结果仍然不同
在场景中旋转或缩放对象时,与matchTemplate
的模板匹配效果不佳。
您应该尝试从Features2D
框架中获取 openCV 函数。例如SIFT
或SURF
描述符,以及FLANN
匹配器。此外,您将需要findHomography
方法。
下面是在场景中查找旋转对象的一个很好的例子。
更新:
简而言之,算法是这样的:
-
查找对象图像的关键点1.1. 从这些关键点中提取描述符
-
查找场景图像的关键点2.1 从关键点中提取描述符
-
匹配器匹配描述符
-
分析您的匹配项
有不同类别的特征检测器,描述符提取器和描述符匹配,您可以阅读它们并选择适合您的任务的那些。
- openCV FeatureDetector(上述算法中的步骤 1 和 2(
- openCV 描述符提取器(算法中的步骤 1.1 和 2.1以上(
- openCV 描述符匹配器 ( 上面算法中的步骤 3 (
与通过特征检测和同形异义词相比,有更简单的方法来匹配模板比例和旋转不变性(如果您知道它实际上只是旋转和缩放,但其他一切都是恒定的(。对于真正的目标检测,上述建议的基于关键点的方法效果更好。
如果您知道它是相同的模板并且不涉及透视更改,则可以使用图像金字塔进行缩放空间检测,并在该金字塔的不同级别上匹配模板(通过简单的东西,例如SSD或NCC(。在金字塔的较高(=较低分辨率(级别上找到粗略匹配会很便宜。事实上,它会非常便宜,以至于您还可以在低分辨率级别上大致旋转模板,并且当您将模板追溯到更高的分辨率级别时,您可以使用更细粒度的旋转步进。这是一种非常标准的模板匹配技术,在实践中效果很好。
旋转不变
对于每个关键点:
- 采取关键点周围的区域。
- 使用渐变或其他方法计算该区域的方向角。
- 将此角度上的图案和请求区域旋转为 0。
- 计算此旋转区域的描述符并匹配它们。
尺度不变
请参阅轻快方法
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 计算缩放多边形的比例,得到给定的多边形面积
- QwtPlot具有相等的轴和自动缩放
- 如何在directx/c++中进行平移/缩放操作
- 形状对象的旋转和缩放不正确C++
- 如何在 OpenSceneGraph 中缩放/旋转/移动资产
- 如何在OpenGL中正确旋转和缩放对象?
- 如何在特定点平移、旋转和缩放
- OpenCV 检测多个旋转的缩放对象
- 在Cocos2DX V3中.如何使用不同的中心缩放和旋转
- 如何仅使用数学方法旋转16x16位图数组的内容(无缩放,只需剪切角)
- 旋转 4x4 矩阵会导致随时间推移而缩放
- 缩放和旋转 模板匹配
- 从全局位置/旋转/缩放更新局部位置/旋转/缩放
- 在GLM中旋转、缩放和平移二维点
- 如何缩放四元数的旋转
- opencvc++模板/模式匹配缩放和旋转不变量
- 是否有可能得到两个图像之间的旋转和缩放只有一个冲浪描述符
- 通过原始缓冲区数据缩放和旋转纹理到另一个纹理上
- 如何用平移、旋转和缩放来反转一个仿射变换