【问题标题】:Converting 'Emgu.CV.Image<Emgu.CV.Structure.Bgr,byte>' to 'System.Drawing.Image'将“Emgu.CV.Image<Emgu.CV.Structure.Bgr,byte>”转换为“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?如果是,那么很可能您只需要投射它。

标签: c# emgucv face-recognition


【解决方案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();

    【讨论】:

      猜你喜欢
      • 2020-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      • 2017-05-07
      • 1970-01-01
      相关资源
      最近更新 更多