opencv - SIFT 未在 OpenCV 中的引用图像中找到任何特征

标签 opencv image-processing computer-vision sift

我有一张目标 Logo 的图像,我正试图使用​​它在其他图像中查找目标 Logo 。我目前正在运行两种不同的检测算法来帮助我检测图像上的任何 Logo 。我使用的第一个检测是基于直方图的,我在图像中搜索屏幕上颜色非常相似的一般区域。从那里我运行 SIFT 以进一步获取我正在寻找的对象。这适用于大多数 Logo ,但我什至没有选择 Target Logo 和 Logo 中的关键点。

我想知道是否可以做些什么来帮助定位图像中的一些关键点。非常感谢任何建议。

下面是未被 SIFT 拾取的图像:

enter image description here

提前致谢。

编辑 我厌倦了使用 Julien 的基于模板匹配的想法以及模型的不同比例和旋转,但仍然收效甚微。我已经包含了一张我正在尝试测试的图像。

Image of the logo

最佳答案

你的图像中没有关键点......

为什么?

  • 因为在统一的颜色平面中没有关键点(为什么会有?因为它是统一的,没有什么是亮点)
  • 因为图像中的一切都是对称的,所以拥有关键点并没有什么帮助,根据某些特征提取器,它们将具有相同的特征向量
  • 因为在交叉方向上没有拐角或高梯度,这会导致许多特征检测器的关键点

如果您正在搜索没有大变化(旋转、平移、噪音等)的 Logo ,您可以尝试使用模板匹配方法,简单的关联是最简单的。

如果你想走得更远,我的一个想法,我从未实现过,但可能很有趣:将有一组你缩放、旋转、扭曲、去饱和、增加噪音的图像,然后应用与您从以前的模板中获得的这组图像匹配的模板... 好吧,这个想法来自 SIFT 和小波变换,我们在其中使用我们以某些方式(旋转、噪声、频率等)改变的函数,以便使我们的变换对任何图像中发生的这些基本变化具有鲁棒性你想“检查”。 这可能是您的主意!

enter image description here

这是一张总结我的想法的图片,你旋转和缩放你的模板,实际上它创建了一个新的旋转/缩放模板,你可以尝试匹配它,它会增加稳健性(即使它可能很长,如果你选择很多参数要改变)。好吧,我并不是说这是一种算法,但它可能是一个有趣且非常基本的想法...

朱利安

关于opencv - SIFT 未在 OpenCV 中的引用图像中找到任何特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6832257/

相关文章:

opencv - 图像处理的关键点是什么?

python - 如何使用 Opencv 和 Flask 将网络摄像头图像流广播到多个设备?

image-processing - OpenCV中的对象识别方法

computer-vision - Weka - 探索者和实验者结果之间的差异

python - 如何用Python提取识别车牌号?

java - BackgroundSubtractorMOG 构造函数值

c++ - 从BackgroundSubtractorMOG2检索背景图像时出错

php - PDF 到 JPG 图像页面选择

python - 我想使用 opencv 删除边界

opencv - 膨胀/侵 eclipse - 矩阵内核左上角与中间的 anchor