2016-07-05 2 views
0

J'utilise la fonction SURF d'Emgu CV pour reconnaître des objets similaires dans les images. L'image est dessinée, montrant tous les points clés trouvés, dans les deux images. Le problème est que les points similaires sont visibles dans l'image. Comment sauvegarder ces points de correspondance dans une base de données?Comment enregistrer le point d'intérêt dans la fonction SURF?

Répondre

0

Tout d'abord, créer une classe SURF.cs puis écrire le code suivant dans le:

 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); 
    } 

Ensuite, dans le program.cs écrire le code suivant:

     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); 
      } 
     }