版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lsq2902101015/article/details/46815289
最近在使用C++的DLL链接库开发C#Emgucv程序,其中要将Emgucv中的Image类传递给Opencv中的Mat类,通过下面的方法进行了实现。
首先,将Emgucv中的Image对象转换成IplImage指针:
public static IntPtr EmgucvImageToIplImagePointer<TColor, TDepth>(Image<TColor, TDepth> image)
where TColor : struct, IColor
where TDepth : new()
{
return image.Ptr;
}
然后,将IplImage指针通过参数传递给Opencv中的IplImage指针:
//dll链接库函数
[DllImport("ImageToMat.dll")]
public static extern IntPtr ImageToMat(IntPtr image);
//调用函数,传递参数
ImageToMat(EmgucvImageToIplImagePointer(image));
最后,Opnecv中将IplImage转换成Mat类
ImageToMat(IplImage* img)
{
Mat src(img);
}
上述仅是一种方法。
将Opencv传递Mat类参数给Emgucv的Image类的操作,请点击这里
Emgucv与Opencv的接口函数都在cvextern.dll链接库中,因为看不到内部代码,所以采用了上述方法,哪位童鞋有Emgucv2.x的Git源码,求发一份[email protected],谢谢