2015-01-14 4 views
1

Image My_Image = новое изображение (Openfile.FileName);сравнить дескрипторы с использованием SIFT в C#

  pictureBox1.Image = My_Image.ToBitmap(); 
      Image<Gray, Byte> modelImage = My_Image.Convert<Gray, byte>(); 
      SIFTDetector siftCPU = new SIFTDetector(); 
      VectorOfKeyPoint modelKeyPoints = new VectorOfKeyPoint(); 


      MKeyPoint[] mKeyPoints = siftCPU.DetectKeyPoints(modelImage, null); 
      modelKeyPoints.Push(mKeyPoints); 
      ImageFeature<float>[] results = siftCPU.ComputeDescriptors(modelImage, null, mKeyPoints); 
      Image<Bgr, Byte> image = Features2DToolbox.DrawKeypoints(modelImage, modelKeyPoints, new Bgr(Color.Red), Features2DToolbox.KeypointDrawType.DEFAULT); 
      pictureBox1.Image = image.ToBitmap(); 

Эта программа просто находит дескрипторы SIFT на одном изображении. Я хочу сравнить с Image, но я не знаю, какой ImageFeature <> Я буду использовать. Я ищу функции ImageFeature <> Я не могу найти его , пожалуйста, помогите мне.

+0

Ваш вопрос мне не ясен. Но я думаю, что это будет полезно. [link] (http://www.emgu.com/wiki/index.php/SURF_feature_detector_in_CSharp) –

ответ

1

ImageFeature [] Результаты состоят из нескольких образцов в зависимости от изображения, и каждый образец состоит из ключевых точек и дескриптора (128), которые вы ищете. вы можете получить к нему доступ, например, произнеся результат [x]. Дискриптор [j], x имеет максимальное значение номера образца и j максимальное значение 128.

Смежные вопросы