2013-05-29 91 views
6

SURF默认为灰色图像。我想在HSV图像上做SURF。我的方法是将通道分为H,S和V.我使用S和V进行关键点检测。我试图比较SV与RGB中的关键点数量以及通道明智度,HSV提供了更多功能。颜色SURF检测器

enter image description here

不知道我在做什么是正确与否。需要一些关于在HSV图像上应用SURF的可能性的解释。我已经阅读了关于在不同色彩空间上应用SIFT而不是SURF的论文。

  1. 有没有更好的方法来实现这个目标?
  2. 我们可以将SURF应用于颜色,HSV空间吗?

谢谢你的时间。

+0

我认为可以在HSV图像上提取SURF。但请记住,S和V通道的取值范围不同(并且也不同于灰度图像),因此您需要仔细调整hessianThreshold参数以使结果合理。弄清楚如何整合不同渠道的关键点也很重要。 – cxyzs7

+0

在openCV中,HSV的范围与标准HSV不同。在OpenCV中,H在0-180之间,而S和V都在0 - 255之间。我认为灰度在0-255之间,也就是8位。所以我想我以上试图看起来好。你对此感觉如何? – rish

+0

结果看起来很合理。以下是您可能感兴趣的论文:[Color-SURF:具有本地内核颜色直方图的冲浪描述符](http://ieeexplore.ieee.org/xpls/abs_all.jsp?number=5360809)。但看起来他们仍然使用灰度进行关键点检测并计算Color-SURF描述符。 – cxyzs7

回答

5
  1. 我们可以将SURF应用于颜色,HSV空间吗?

我没有测试它,但据我所知,过筛和冲浪使用相当(原则上)类似的检测技术:

SIFT检测器使用Difference-of-Gaussian (DoG)技术能够有效地逼近Laplacian-of-Gaussian (LoG) ,这两种技术都是Blob Detection

SURF检测器使用箱过滤器/盒模糊来计算任意大小的(或近似?)Hessian矩阵的行列式其是斑点检测技术。

这两种方法都使用一些策略来计算多个比例中的斑点(SIFT:DoG-Pyramid; SURF:用于缩放滤波器大小的积分图像)。最后,两种方法在给定的二维阵列中检测到斑点。因此,如果SIFT可以在您的(H)SV通道中检测到良好的特征,那么SURF应该能够做同样的事情,因为原则上它们都检测斑点。你会做什么是在色调/饱和度/值信道检测的斑点:

  • 色调斑点:由不同(全部更高或所有较低)的彩色色调包围类似色调的区;

  • saturation-blobs:什么地区...什么?不知道该如何解释;

  • value-blobs:应该给灰度图像转换的RGB图像的斑点非常相似的结果。

有一点补充:我只是处理探测器!不知道SIFT/SURF 描述是如何受颜色数据影响的。

0

我没有测试它,但你可以做的是使用兴趣点HSV值作为额外的匹配标准。我在原始实现中使用的以及加速匹配图像对的方式是Hessian矩阵行列式的标志。该标志告诉我们,它是在黑暗背景下的光斑还是在浅色背景上的黑斑。显然,人们不会试图将一个黑斑与一个明亮斑点相匹配。

以类似的方式,您可以使用HSV值并使用距离。为什么将蓝色斑点与黄色斑点相匹配。没有任何意义,除了白平衡或灯光完全混乱。也许我的paper about matching line segments可以在这里帮助。我在那里使用HSV。

至于在不同渠道H,S和V上提取​​SURF兴趣点,我同意Micka的答案。

您可以尝试的是使用Hue通道制作描述符。