将“Emgu.CV.Image<Emgu.CV.Structure.Bgr,byte>”转换为“System.Drawing.Image”

Posted

技术标签:

【中文标题】将“Emgu.CV.Image<Emgu.CV.Structure.Bgr,byte>”转换为“System.Drawing.Image”【英文标题】:Converting 'Emgu.CV.Image<Emgu.CV.Structure.Bgr,byte>' to 'System.Drawing.Image' 【发布时间】:2020-02-09 10:56:52 【问题描述】:

我正在用 C# 进行人脸识别。 我该如何解决这个错误?

错误 4 无法将类型“Emgu.CV.Image”隐式转换为“System.Drawing.Image”

对于此代码:

cameraBox1.Image = Frame;
names = "" ;
User.Clear();

【问题讨论】:

Emgu.CV.Image 是否继承自 System.Drawing.Image?如果是,那么很可能您只需要投射它。 【参考方案1】:

有两种方式:

a) 图像类Bitmap Property:

cameraBox1.Image = Frame.Bitmap;

围绕图像像素数据包裹位图。不涉及副本。

b) 图像类ToBitmap() method:

cameraBox1.Image = Frame.ToBitmap();

将图像中的像素数据复制到新的位图中。

您选择哪种方式取决于您的需求。 a) 速度更快,但创建的共享内存更难处理。

【讨论】:

【参考方案2】:

System.Windows.Forms.PictureBox like cameraBox1 不直接接受Emgu.CV.Image。您必须将其转换为 System.Drawing.Image 像这样 cameraBox1.Image = Frame.ToBitmap();

【讨论】:

以上是关于将“Emgu.CV.Image<Emgu.CV.Structure.Bgr,byte>”转换为“System.Drawing.Image”的主要内容,如果未能解决你的问题,请参考以下文章

如何将Ios文件上传到

Javascript 将正则表达式 \\n 替换为 \n,将 \\t 替换为 \t,将 \\r 替换为 \r 等等

如何将视频文件转换格式

sh 一个将生成CA的脚本,将CA导入到钥匙串中,然后它将创建一个证书并与CA签名,然后将其导入到

python怎么将0写入文件?

如何将CMD窗口背景改成透明?