簡體   English   中英

如何在opencv中制作自己的特征檢測方法?

[英]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. 如果我想創建我自己的特征檢測器(例如使用Trajkovic或Harris算法),我將使用Descriptor Extractor?
  2. 是SurfFeatureDetector中的特征,只是公共點或點的區域?

**** 另外 * ***

1)在該示例中,使用了特征檢測的Surf算法。 我已經制作了自己的算法(Trajkovic)並且效果很好 - 找到了所有角落(圖像特征)。 然后我嘗試使用SurfDescriptorExtractor,因為它在示例中使用。 問題是SurfDescriptorExtractor不想以正確的方式使用我的創建點(結果圖片顯示錯誤的連接,這意味着,提取器沒有正確計算向量)。

2)我需要准確地使用opencv,這就是重點;

3)“特征檢測器”是一種算法,它試圖在圖像上找到關鍵點(特征或角點),“描述符提取器” - 是一種算法,它可以計算特征向量,以便最好地理解關鍵點的位置和方向;

4)總之,在示例中,所有關鍵點都連接在兩個圖像上(如教程的最后一張圖片所示),然后用矩形突出顯示。 但是當我使用Trajkovic算法時,它們以錯誤的方式連接,這就是為什么沒有突出顯示的矩形。

雖然我們無法在不查看您的實現的情況下查明問題,甚至可能進行一些調查,但我可以指出您的解決方案:OpenCV源代碼,您可以與其實現進行比較。

看看detectAndCompute()函數:

Harris角點檢測的工作方式有所不同,其API也是如此:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM