EmguCv几种图像打开方法和转换

EmguCv主要有3种打开图片的方式。

一:Mat类实现 

      Mat类主要功能是存储图片数据结构,包括数据头和矩阵信息,主要的内存占据是图像信息矩阵。处理图像的时候可只复制数据头,可减少不必要的内存开销。按照需求针对图片的某个像素处理。能够得到图片的宽度(height),长度(weight),行(rows)列(cols)数,色彩类型(rgb,gray),通道数(channel)等各种具体的信息。

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

       1.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(); 

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

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

猜你喜欢

转载自blog.csdn.net/abaqus3_0/article/details/80219410