opencv - opencv SIFT是否是旋转不变特征

标签 opencv image-processing

我想在opencv中编写一段代码来证明SIFT是否是旋转不变特征。 假设图像有一个关键点,即图像的中心。我想计算关键点描述符(幅度和方向)。我想问一下重点是什么?它是图像中的一个位置吗? 我搜索了简单的教程或代码来知道该怎么做,但没有找到简单的东西。

最佳答案

关键点是图像中有趣的点。当强度发生变化时,通常会发现这些点,例如,在图像中两个对象之间的边缘处。关键点对图像中点的位置等进行编码。然后,SIFT 将为您的关键点提取局部特征描述符,然后您可以将其用于图像匹配。

正如缩写词所示,尺度不变特征变换 (SIFT) 是尺度不变的。它不是旋转不变的。在这种情况下,您可以使用 SURF。但是,SURF 对于实时应用程序来说有点问题。

SIFT:http://en.wikipedia.org/wiki/Scale-invariant_feature_transform

冲浪:http://www.vision.ee.ethz.ch/~surf/papers.html

示例代码:Trying to match two images using sift in OpenCv, but too many matches

要测试您的 SIFT 代码,您可以在 Opencv 中创建一个黑色 512x512 图像,在其宽度上具有三个等距的白色点。然后,将图像旋转小角度,测量角度,并检查特征匹配。当您这样做时,您会意识到,对于较大的旋转,特征匹配会被抛弃。

关于opencv - opencv SIFT是否是旋转不变特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730440/

相关文章:

python - 调整图片大小,仅在中心周围显示100x100像素

c++ - 如何区分opencv中RGB led的HSV颜色?

c++ - 调整图像类型 "Mat"opencv C++

image - Golang PNG 颜色操作不会达到 255

c++ - 用于将图像转换为自定义 RGB 像素灰度的高效 C++ 代码(无库)

c++ - 从 uint16 指针创建 Mat

c++ - 提高 OpenCV 中 Mat 像素访问的性能

java - 通过检查 HSV 颜色,图片中最常用的色调

image-processing - 如何检查恢复深度

python - 填充轮廓圆