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);