Emgucv类型转换

常用容器:

Bitmap:

Bitmap位图文件,是Windows标准格式,也是.Net主要的图像存储格式。

Bitmap类以System.Drawing为命名空间,继承抽象类Image,同时里面封装了非常多对图像操作的函数。

 Image

Image是Emgu Cv3.0版本之前的主要存储图像类型,

同时也在3.0之后也是兼容。TColor是一个颜色类型,TDepth是一个图像深度类型。Image的父类为(CvArray,IImage, IDisposable, ICloneable, IInputOutputArray, IOutputArray,IInputArrayOfArrays, IInputArray, IEquatable)。当有些函数的参数为以上类型,就可以用Image来替换。以Emgu.CV为命名空间。

 Mat:

在Emgu Cv3.0版本之后(包括3.0版本)才出现的,Mat的父类为

(MatDataAllocator,IImage, IDisposable, ICloneable, IInputOutputArray, IOutputArray,IInputArrayOfArrays, IInputArray, IEquatable, ISerializable)。当有些函数的参数为以上类型,就可以用Mat来替换。以Emgu.CV为命名空间。

 UMat:

在大多数情况下,您应该使用Matrix类来替换。UMat父类为(MatDataAllocator,IImage, IDisposable, ICloneable, IInputOutputArray, IOutputArray,IInputArrayOfArrays, IInputArray, IEquatable, ISerializable),以Emgu.CV为命名空间。

        /// 
        /// 类型转换
        /// 
        /// 
        /// 
        private void btnTranstion_Click(object sender, EventArgs e)
        {
            Bitmap bitmap = new Bitmap("001.jpg");
            //Bitmap转Image
            Image image = new Image(bitmap);
            //Image转Bitmap
            Bitmap _bitmap = image.ToBitmap();
            Bitmap _bitmap1 = image.Bitmap;
            //Image转Mat
            Mat _mat = image.Mat;
            Mat _mat1 = image.ToUMat().GetMat(Emgu.CV.CvEnum.AccessType.Fast);
            //Mat转Image
            Image _image = _mat.ToImage();
            //Mat转UMat
            UMat umat = _mat.GetUMat(Emgu.CV.CvEnum.AccessType.Fast);
            //UMat转Mat
            Mat mat = umat.GetMat(Emgu.CV.CvEnum.AccessType.Fast);
            //UMat转Image
            Image _image1 = umat.ToImage();
            //Image转UMat
            UMat umat2 = image.ToUMat();

            imgLoad.Image = image;
        }


你可能感兴趣的:(c#)