2016-07-05 14 views
0

Ich verwende die SURF-Funktion von Emgu CV, um ähnliche Objekte in Bildern zu erkennen. Das Bild wird mit allen gefundenen Schlüsselpunkten in beiden Bildern gezeichnet. Das Problem ist, dass ähnliche Punkte im Bild zu sehen sind.Wie speichert man den Interessenpunkt in der SURF-Funktion?

Wie kann ich diese Matchpunkte in einer Datenbank speichern?

Antwort

0

Zunächst einmal erstellen Sie eine Klasse SURF.cs dann in den folgenden Code schreiben:

 public void FindSURF(Image<Gray, Byte> modelImage) 
    { 
     VectorOfKeyPoint modelKeyPoints; 
     SURFDetector surfCPU = new SURFDetector(500, false); 

     //extract features from the object image 
     modelKeyPoints = new VectorOfKeyPoint(); 
     Matrix<float> modelDescriptors = surfCPU.DetectAndCompute(modelImage, null, modelKeyPoints); 
    } 

Dann in der program.cs schreiben Sie den folgenden Code:

     SURF FindImageSURF = new SURF(); 

     string[] filePaths = Directory.GetFiles(@"E:\folderimages\"); 

     for (int i = 0; i < filePaths.Length; ++i) 
     { 
      string path = filePaths[i]; 
      using (Image<Gray, Byte> modelImage = new Image<Gray, byte>(path)) 
      { 
       FindImageSURF.FindSURF(modelImage); 
      } 
     } 
Verwandte Themen