Emgu OpenCV Intptr для IplImage?

#c# #casting #opencv #emgucv

#c# #Кастинг #opencv #emgucv

Вопрос:

Я использую оболочку Emgu OpenCV C # и пытаюсь преобразовать IntPtr (ы), возвращаемые его функциями, и получить доступ к реальным объектам IplImage OpenCV. Есть идеи? Я новичок в C #, поэтому приветствую любые предложения.

Приветствую.

Ответ №1:

Что ж, нашел решение и публикую его здесь —

  IntPtr rgb32; 
  

  MIplImage rgb32Image = new MIplImage();
 rgb32Image = (MIplImage)Marshal.PtrToStructure(rgb32, typeof(MIplImage));
  

Где, конечно, rgb32Image — это то, что нужно.

Ответ №2:

В версии 4.2 2020 года вы можете использовать:

 Emgu.CV.Image<TColor, TDepth>.FromIplImagePtr(System.IntPtr)
  

Примечание: Также следует учитывать, что начиная с версии 4.2.2 для преобразования растрового изображения в изображение<,> теперь вам нужно использовать метод расширения растрового изображения toImage<,>(), найденный в пакете Emgu.CV.runtime.windows Nuget (см. http://www.emgu.com/wiki/index.php/Version_History#Emgu.CV-4.2.0). Вначале это вызвало у меня некоторую головную боль.