Я использую оболочку Emgu OpenCV C#, и я пытаюсь преобразовать IntPtr (ы), которые возвращают его функции, и получить доступ к фактическим объектам IplImage OpenCV. Есть идеи? Я новичок в C#, поэтому любые предложения приветствуются.
Ваше здоровье.
Я использую оболочку Emgu OpenCV C#, и я пытаюсь преобразовать IntPtr (ы), которые возвращают его функции, и получить доступ к фактическим объектам IplImage OpenCV. Есть идеи? Я новичок в C#, поэтому любые предложения приветствуются.
Ваше здоровье.
Что ж, решение есть, и выкладываю сюда -
IntPtr rgb32;
...
MIplImage rgb32Image = new MIplImage();
rgb32Image = (MIplImage)Marshal.PtrToStructure(rgb32, typeof(MIplImage));
Где, конечно, нужен rgb32Image.
В версии 4.2 2020 года вы можете использовать:
Emgu.CV.Image<TColor, TDepth>.FromIplImagePtr(System.IntPtr)
Примечание. Также учтите, что начиная с версии 4.2 для преобразования растрового изображения в изображение‹,> вам теперь нужно использовать метод расширения растрового изображения ToImage‹,>(), который находится в пакете Nuget Emgu.CV.runtime.windows (см. http://www.emgu.com/wiki/index.php/Version_History#Emgu.CV-4.2.0). Это вызвало у меня некоторую головную боль в начале.