回答
- 我們可以將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