【问题标题】:Convert EmguCV image to system drawing bitmap将 EmguCV 图像转换为系统绘图位图
【发布时间】:2013-03-14 10:06:14
【问题描述】:

我正在用 emgucv 库编写一个 c# 程序。 我使用 emgucv 中的图像框从网络摄像头捕获图像。 我想通过鼠标单击图像框使用 bitmap.Getpixel() 来获取图像的颜色像素。 然而, 它包含错误错误是..它无法将类型'Emgu.CV.IImage'隐式转换为'System.Drawing.Bitmap'

谁能给我解决这个问题的想法?

      Bitmap bitmap = newdetectimageBox.Image; //error

【问题讨论】:

  • EmguCV v4.4.0.4099|4077 中缺少 ToBitmap() 和 Bitmap 所以我现在改用 v4.3.0.3890,它工作正常
  • @axon,它们不是丢失而是移动了。 nuget.org/packages/Emgu.CV.Bitmap

标签: c# winforms emgucv


【解决方案1】:

请使用此代码

 Image<Bgr, Byte> ImageFrame = newdetectimageBox.Image ; //Capture the cam Image 
 Bitmap BmpInput = ImageFrame.ToBitmap(); //Convert the emgu Image to BitmapImage 

【讨论】:

  • 来自文档: // 备注: // 为了在 Image 和 Image 上获得更好的性能,请考虑使用 // Bitmap 属性
【解决方案2】:

这是您的操作方法(图像数据不与位图共享)- 请参阅 emgu 网站上有关 IImage 的文档:

Bitmap bitmap = new Bitmap(newdetectimageBox.Image.Bitmap);

【讨论】:

    【解决方案3】:

    IImage 接口包含属性 Bitmap。

    但是,如果您使用的是 Image 类,则应该使用 ToBitmap 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2012-02-01
      • 2015-03-10
      • 1970-01-01
      相关资源
      最近更新 更多