从位图转换为MIplImage或IplImage c#

时间:2012-07-21 10:38:19

标签: opencv bitmap emgucv iplimage

我在c ++中创建了一个算法来进行背景减法,我想用cll用一个参数“IplImage”用dll(extern)来调用它。我在c#中获取相机流的问题,我将帧作为图像(位图)。

我如何将位图转换为IplImage以在c ++中发送它,反之亦然,以检索处理的帧?

非常感谢。

1 个答案:

答案 0 :(得分:0)

使用Emgucv,您可以尝试

Bitmap bitmap = ....
Emgu.CV.Image<Bgr, Byte> img = new Image<Bgr, byte>(bitmap);
Emgu.CV.Structure.MIplImage = img.MIplImage;

使用C ++方法发送它,您可以将其作为IntPtr对象

传递
IntPtr r = IntPtr.Zero;
System.Runtime.InteropServices.Marshal.StructureToPtr(img, r, false);

// call your c++ method 
...

另请参阅有关Marshal

的详细信息