将位图转换为OpenCvSharp IplImage

时间:2014-08-20 21:04:46

标签: c# opencv image-processing emgucv opencvsharp

我不幸地为此苦苦挣扎。我有一个与Emgu和OpenCvSharp混合的项目。听起来很奇怪,但也有原因。

无论如何,我所拥有的是一个EMGU.CV.Image,我想用它来填充OpenCvSharp IplImage

我认为这是可能的,但我无法绕过它。

相关的代码片段(C#):

            FrameCapture = Cv.CreateFileCapture(@"C:\test\vid1.mp4");

            var frm = cap.QueryFrame();
            var frameBmp = frm.Bitmap;

            IplImage curFrame = ??? <<====== I'd like to create curFrame based on frameBmp

1 个答案:

答案 0 :(得分:1)

像往常一样,答案总是很简单。

对于遇到此问题的任何人,您可以执行以下操作:

            var frm = cap.QueryFrame(); // this is an Emgu.CV.Image object
            var frameBmp = frm.Bitmap; // this is the bitmap from that object

            Frame = new IplImage(frameBmp.Width, frameBmp.Height, BitDepth.U8, 3);  //creates the OpenCvSharp IplImage;
            Frame.CopyFrom(frameBmp); // copies the bitmap data to the IplImage