如何将Mat转换为图像

8

我需要在Emgu CV中将Mat转换为Image。尝试将Mat强制转换为Image会产生异常:无法隐式转换类型'Emgu.CV.Mat'为'Emgu.CV.Image'

Image<Bgr, Byte> imgeOrigenal;

Capture capWebcam = null;

imgeOrigenal = capWebcam.QueryFrame();//error line

如何将Mat转换为图像?

4
很高兴知道您需要测试过并且可用的代码。请记住,stackoverflow不是一个代码生成器。您目前尝试过什么来转换您的Mat?您是否尝试了以下代码:*Image<Bgr, Byte> img = mat.ToImage<Bgr, Byte>();*?虽然没有经过测试,但应该可以工作。 - David_D
@David_D,你目前所做的正是我所指的。这个问题被问了很多次,但像你这样正确回答的并不多见。谢谢。 - Ehsan Jeihani
3个回答

17

正确答案是David_D在问题下发送的第一条评论。

 Image<Bgr, Byte> imgeOrigenal = capWebcam.QueryFrame().ToImage<Bgr, Byte>();

0
我是这样做的(对于我所有的目的似乎都工作正常):
//BGR
Image<Bgr, byte> grayframe = yourMat.Clone().ToImage<Bgr, byte>();

//GRAYSCALE
Image<Gray, byte> grayframe = yourMat.Clone().ToImage<Gray, byte>();

0

如果你想在一个 pictureBox 或者一个 dataGridView 中显示图片,你也可以像这样将图片作为一个 Bitmap 对象加载:

imgeOrigenal = new Bitmap(capWebcam.Bitmap);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接