16

我正在使用 OpenCV 库进行图像处理。

我想将 a 转换System.Drawing.BitmapImage<Bgr, Byte>. 我怎样才能做到这一点?

4

6 回答 6

20

构造Image函数有一个Bitmap重载(假设你使用 Emgu CV 包装器,因为你已经标记了它.NET)。

Image<Bgr, Byte> myImage = new Image<Bgr, Byte>(myBitmap); 
于 2013-04-26T16:26:01.167 回答
12

的构造函数Image<Bgr, byte>不再接受Bitmap作为参数。我不得不对 Emgu 4.3 版使用以下代码:

Image<Bgr, byte> emguImage = bitmap.ToImage<Bgr, byte>();

我在 github 和补丁说明中找到了它。官方文档教程没有正确更新。

于 2020-07-03T23:27:35.467 回答
11

在 .NETEmgu.CV 4.4.0.4099中,我必须安装Emgu.CV.Bitmap 4.4.0.4099Emgu.CV.runtime.windows使用bitmap.ToImage<Bgr, byte>()扩展方法。

于 2020-12-16T10:04:57.840 回答
1

我在 NetStandard 2.1 上使用 Emgu.CV 4.5.1.4349 需要安装 Emgu.CV.Bitmap 和 Emgu.CV.runtime.windows 才能将您的位图转换为 Image<Bgr, byte>

var myImage = myBitmap.ToImage<Bgr, byte>()

于 2021-05-27T05:07:48.080 回答
0

需要关注的人:您应该将依赖 dll 添加到项目中,并将 Emgu\emgucv-windows-universal-cuda 2.9.0.1922\bin\ 中的“复制到输出目录”属性更改为“始终复制”(添加 -> 现有项) x86

在我的项目中添加:opencv_core290.dll、opencv_highgui290.dll、opencv_ffmpeg290.dll、opencv_imageproc290.dll 和 cudart32_55.dll

来自:'Emgu.CV.CvInvoke' 的类型初始化程序引发了异常

于 2018-08-18T12:41:28.603 回答
0

我正在使用 Emgu 4.3.0.3890,我遇到了同样的问题,我将我的代码与我的团队集成。给我带来麻烦的是:

Image<Bgr, byte> img = bitmap.ToImage<Bgr, byte>();

我没有看到构建创建了两个名为 x86 和 x64 的新目录。当我发现它时,我将这两个目录添加到我的二进制文件的位置,并且一切正常。我没有时间去消除以查看这些目录中的哪个文件对此负责,但是嘿,它起作用了。:-)

于 2020-11-17T11:45:51.133 回答