Mat.Mat构造函数(Emgu.CV)中使用的WriteableBitmap

时间:2016-09-25 16:52:17

标签: wpf image-processing emgucv mat

我要做的是在Emgu.CV.Mat内使用一个预先假装的图像。它提供了一个构造函数,可以指定文件名。但是我的图像已经在代码中加载(和操作)了,因此将文件保存在这里只是为了再次加载它是没有意义的。

我在WPF环境中工作,因此我的图像目前为WriteableBitmap。此外,我发现了一些提示(例如here)如何将Mat转换为WriteableBitmap。但是,我正在寻找的是另一种方式,使用WriteableBitmapEmgu.CV填充它。

根据Emgu CV 2.x it was possible使用Bitmap但是它接缝已在Emgu CV 3.x中删除了此功能。

如何在Emgu CV Version 3中做到这一点?

1 个答案:

答案 0 :(得分:0)

我一直在这个领域尝试与工作相关的应用程序。为了有效地使用带有Mat或图像的WriteableBitmap<,>你需要访问原始像素。

因为我有来自硬件的图像以及来自创建RenderTargetBitmap的图像,我发现对我来说工作的是使用适当大小的HGlobalAlloc分配缓冲区并使用RenderTargetBitmap.CopyPixels()将数据移动到此缓冲区。我还使用IntPtr为这些数据创建了一个Image。完成操作后,我使用WiteableBitmap.WritePixels()将图像放回WriteableBitmap。

以下是Emgu的解决方案:BitmapSourceConverter

道格