关于Emgu中图像数据格式说明(Mat,Image,BitMap)

1、Mat格式

名称空间 Namespace: Emgu.CV
细节 Mat是一个类,记录和存储图像数据,主要由两个数据部分组成: < 矩阵头(大小,通道,数据类型等) > 和 < 数据块(像素值) > 。
注: 不可以利用PictureBox组件显示

声明方式:Mat mat=new Mat();

2、Bitmap格式

名称空间 namespace System.Drawing
细节 封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。 Bitmap 是用于处理由像素数据定义的图像的对象 。
注: 可以利用PictureBox组件显示

声明方式:Bitmap bitimg = new Bitmap();

3、Image格式

名称空间 namespace System.Drawing
细节 源自 Bitmap 和 Metafile 的类提供功能的抽象基类。
注: 可以利用PictureBox组件显示

声明方式:Image img = Image.FromFile(Sting img_path);

4、Image<TColor, TDepth>格式

名称空间 Namespace: Emgu.CV
细节 这个类包含两个泛型参数:TColor和TDepth,定义一个Image对象时,需要指定色彩空间类型和数据深度。
注: 不可以利用PictureBox组件显示

声明方式:Image<Bgr, byte> img = new Image<Bgr, byte>(string img_path);

5、UMat格式

名称空间 Namespace: Emgu.CV
细节 Mat类型的父类UMat,Mat,只有当你知道自己在做什么时才应该使用。在大多数情况下,您应该使用Matrix类。
注: 不可以利用PictureBox组件显示

声明方式:UMat umat=new UMat();

6、Matrix格式

名称空间 Namespace: Emgu.CV
细节 Matrix是OpenCV的cvMat的包装器。
注: 不可以利用PictureBox组件显示

声明方式:Matrix<Single> matrix = new Matrix<Single>(480, 320);

不同数据之间的格式转化

1)由 1、Mat格式 转为 4、Image<TColor, TDepth> 和 2、Bitmap格式

Mat mat = new Mat(path);
Bitmap bitmap=mat.ToBitmap();
Image<Bgr, byte> immat=mat.ToImage<Bgr,byte>();  

2)由 3、Image格式 转为 2、Bitmap格式

Bitmap bitimg = new Bitmap(pictureBox1.Image);由piturebox中的显示图像

3)由 2、Bitmap格式 转为 1、Mat格式和4、Image<TColor, TDepth>

Bitmap bitimg = new Bitmap();
Mat bitmat = BitmapExtension.ToMat(bitimg); 
Image<Bgr, byte> immat = BitmapExtension.ToImage<Bgr, byte>(bitimg);
注:需要引入NuGet包 Emgu.CV.Bitmap

4)由 5、UMat格式 互相转 1、Mat格式

1、Mat转UMat
UMat umat = mat.GetUMat(Emgu.CV.CvEnum.AccessType.Fast);
2、UMat 转 Mat
Mat mat = umat.GetMat(Emgu.CV.CvEnum.AccessType.Fast);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值