我要做的是在Emgu.CV.Mat
内使用一个预先假装的图像。它提供了一个构造函数,可以指定文件名。但是我的图像已经在代码中加载(和操作)了,因此将文件保存在这里只是为了再次加载它是没有意义的。
我在WPF环境中工作,因此我的图像目前为WriteableBitmap
。此外,我发现了一些提示(例如here)如何将Mat
转换为WriteableBitmap
。但是,我正在寻找的是另一种方式,使用WriteableBitmap
来Emgu.CV
填充它。
根据Emgu CV 2.x it was possible使用Bitmap
但是它接缝已在Emgu CV 3.x中删除了此功能。
如何在Emgu CV Version 3中做到这一点?
答案 0 :(得分:0)
我一直在这个领域尝试与工作相关的应用程序。为了有效地使用带有Mat或图像的WriteableBitmap<,>你需要访问原始像素。
因为我有来自硬件的图像以及来自创建RenderTargetBitmap的图像,我发现对我来说工作的是使用适当大小的HGlobalAlloc分配缓冲区并使用RenderTargetBitmap.CopyPixels()将数据移动到此缓冲区。我还使用IntPtr为这些数据创建了一个Image。完成操作后,我使用WiteableBitmap.WritePixels()将图像放回WriteableBitmap。
以下是Emgu的解决方案:BitmapSourceConverter
道格