[英]How to make my own feature detection method in opencv?
讓我們來看看這個名為Features2D + Homography的基本教程,找到一個已知對象。 它使用SurfFeatureDetector來檢測功能:
SurfFeatureDetector detector( minHessian );
std::vector<KeyPoint> keypoints_object, keypoints_scene;
detector.detect( img_object, keypoints_object );
detector.detect( img_scene, keypoints_scene );
然后,它使用SurfDescriptorExtractor
使用檢測到的特征計算描述符(特征向量)。
我的問題是:
**** 另外 * ***
1)在該示例中,使用了特征檢測的Surf算法。 我已經制作了自己的算法(Trajkovic)並且效果很好 - 找到了所有角落(圖像特征)。 然后我嘗試使用SurfDescriptorExtractor,因為它在示例中使用。 問題是SurfDescriptorExtractor不想以正確的方式使用我的創建點(結果圖片顯示錯誤的連接,這意味着,提取器沒有正確計算向量)。
2)我需要准確地使用opencv,這就是重點;
3)“特征檢測器”是一種算法,它試圖在圖像上找到關鍵點(特征或角點),“描述符提取器” - 是一種算法,它可以計算特征向量,以便最好地理解關鍵點的位置和方向;
4)總之,在示例中,所有關鍵點都連接在兩個圖像上(如教程的最后一張圖片所示),然后用矩形突出顯示。 但是當我使用Trajkovic算法時,它們以錯誤的方式連接,這就是為什么沒有突出顯示的矩形。
雖然我們無法在不查看您的實現的情況下查明問題,甚至可能進行一些調查,但我可以指出您的解決方案:OpenCV源代碼,您可以與其實現進行比較。
看看detectAndCompute()
函數:
Harris角點檢測的工作方式有所不同,其API也是如此:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.