1

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

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

非常感谢。

4

1 回答 1

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

于 2012-07-25T09:10:33.680 回答