【Emgu CV】图片格式相互转换

一、Mat

      Mat 类主要功能是存储图片数据结构,包括数据头和矩阵信息,主要的内存占据是图像信息矩阵。

     处理图像的时候可只复制数据头,可减少不必要的内存开销。

      按照需求针对图片的某个像素处理。能够得到图片的宽度(height),长度(weight),行(rows)列(cols)数,色彩类型(rgb,gray),通道数(channel)等各种具体的信息。

       (1) Mat  image=new Mat(string filepath,Emgu.CV.CvEnum.LoadImageType.AnyColor);

       (2) Mat image =CvInvoke.Imread(string filepath,Emgu.CV.CvEnum.LoadImageType.AnyColor);

二、Image<TColor,TDepth>

       Image<Bgr,byte>  img=new    Image<Bgr,byte>("string filepath,Emgu.CV.CvEnum.LoadImageType.AnyColor");

该类能够实现多种图像处理功能,灰度化,二值化,滤波处理,边缘检测,反色,模糊,膨胀等等处理。

该类还能转为Bitmap,Mat,Image其他的图片类型,Mat,Bitmap等其他类也可以转为该类。

        (1)  Image<Bgr,byte> 转为 Bitmap 可通过函数 img.ToBitmap(); 

        (2)   Bitmap 转为 Image 可通过读取实现 Image<Bgr,byte> img = new Image<Bgr,byte> (bitmap);

        (3)  Mat 类可以通过  Image<Bgr,byte>matToimg = Matimg.ToImage<Bgr,byte>();

            ImgToMat = img.Mat;(等式左边为目标类型,右边原始类型)

三、IntPtr

      该类主要通过寻址的方式(指向图像存储空间首地址),对整张图片进行处理,获得地址后需要通过 Mat 类,转为展示的图片类型。

   Img= new Mat(height, weight, Emgu.CV.CvEnum.DepthType.Cv8U, 1, (IntPtr)imgIntPtr, step);
  


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值