回答
- 我们可以将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 描述是如何受颜色数据影响的。
我没有测试它,但你可以做的是使用兴趣点HSV值作为额外的匹配标准。我在原始实现中使用的以及加速匹配图像对的方式是Hessian矩阵行列式的标志。该标志告诉我们,它是在黑暗背景下的光斑还是在浅色背景上的黑斑。显然,人们不会试图将一个黑斑与一个明亮斑点相匹配。
以类似的方式,您可以使用HSV值并使用距离。为什么将蓝色斑点与黄色斑点相匹配。没有任何意义,除了白平衡或灯光完全混乱。也许我的paper about matching line segments可以在这里帮助。我在那里使用HSV。
至于在不同渠道H,S和V上提取SURF兴趣点,我同意Micka的答案。
您可以尝试的是使用Hue通道制作描述符。
- 1. Java颜色检测
- 2. Ghostscript颜色检测
- 3. 检测iDevice颜色
- 4. 硒 - 检测颜色
- 5. Java颜色检测
- 6. EmguCV SURF检测无法正确检测
- 7. SIFT或SURF物体检测
- 8. SURF检测后OpenCV崩溃
- 9. Java中的颜色检测器
- 10. OpenCV - 具有不同颜色的颜色斑点检测器
- 11. PHP颜色强度检测
- 12. 碰撞检测颜色
- 13. C#aforge颜色检测
- 14. opencv中的颜色检测
- 15. 颜色检测算法
- 16. 检测精灵的颜色
- 17. 颜色边缘检测+ opencv
- 18. 颜色检测和分析
- 19. Opencv Android颜色检测
- 20. OpenCV颜色检测为黄色
- 21. Java:检测颜色(例如,我的颜色是蓝色的吗?)
- 22. 通过FAST检测,SURF描述更快?
- 23. 从物体中检测颜色并更改其颜色ios
- 24. 使用YCrCb颜色空间进行颜色检测?
- 25. 使用javascript检测颜色是否在两种颜色之间
- 26. 颜色检测后发生事件
- 27. C#颜色检测多个结果
- 28. 如何从PDF中检测颜色Python
- 29. Python中的RGB颜色检测语言
- 30. AS3中的颜色检测可能吗?
我认为可以在HSV图像上提取SURF。但请记住,S和V通道的取值范围不同(并且也不同于灰度图像),因此您需要仔细调整hessianThreshold参数以使结果合理。弄清楚如何整合不同渠道的关键点也很重要。 – cxyzs7
在openCV中,HSV的范围与标准HSV不同。在OpenCV中,H在0-180之间,而S和V都在0 - 255之间。我认为灰度在0-255之间,也就是8位。所以我想我以上试图看起来好。你对此感觉如何? – rish
结果看起来很合理。以下是您可能感兴趣的论文:[Color-SURF:具有本地内核颜色直方图的冲浪描述符](http://ieeexplore.ieee.org/xpls/abs_all.jsp?number=5360809)。但看起来他们仍然使用灰度进行关键点检测并计算Color-SURF描述符。 – cxyzs7