本文讲述了C# Emgu 类型转换!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:
Bitmap:
Bitmap位图文件,是Windows标准格式,也是.Net主要的图像存储格式。
Bitmap类以System.Drawing为命名空间,继承抽象类Image,同时里面封装了非常多对图像操作的函数。
Image<TColor, TDepth>:
Image<TColor,TDepth>是Emgu Cv3.0版本之前的主要存储图像类型,同时也在3.0之后也是兼容。
TColor是一个颜色类型,TDepth是一个图像深度类型。
Image<TColor, TDepth>的父类为
(CvArray<TDepth>,IImage, IDisposable, ICloneable, IInputOutputArray, IOutputArray,IInputArrayOfArrays, IInputArray, IEquatable<Image<TColor, TDepth>)。
当有些函数的参数为以上类型,就可以用Image<TColor,TDepth>来替换。以Emgu.CV为命名空间。
Mat:
在Emgu Cv3.0版本之后(包括3.0版本)才出现的,Mat的父类为
(MatDataAllocator,IImage, IDisposable, ICloneable, IInputOutputArray, IOutputArray,IInputArrayOfArrays, IInputArray, IEquatable<Mat>, ISerializable)
当有些函数的参数为以上类型,就可以用Mat来替换。以Emgu.CV为命名空间。
UMat:
在大多数情况下,您应该使用Matrix类来替换。
UMat父类为(MatDataAllocator,IImage, IDisposable, ICloneable, IInputOutputArray, IOutputArray,IInputArrayOfArrays, IInputArray, IEquatable<UMat>, ISerializable),以Emgu.CV为命名空 1
1 Bitmap bitmap = new Bitmap("001.jpg");
2 //Bitmap转Image<Bgr, byte> 3 Image<Bgr, byte> image = new Image<Bgr, byte>(bitmap); 4 //Image<Bgr, byte>转Bitmap 5 Bitmap _bitmap = image.ToBitmap(); 6 Bitmap _bitmap1 = image.Bitmap; 7 //Image<Bgr, byte>转Mat 8 Mat _mat = image.Mat; 9 Mat _mat1 = image.ToUMat().GetMat(Emgu.CV.CvEnum.AccessType.Fast); 10 //Mat转Image<Bgr, byte> 11 Image<Bgr, byte> _image = _mat.ToImage<Bgr, byte>(); 12 //Mat转UMat 13 UMat umat = _mat.GetUMat(Emgu.CV.CvEnum.AccessType.Fast); 14 //UMat转Mat 15 Mat mat = umat.GetMat(Emgu.CV.CvEnum.AccessType.Fast); 16 //UMat转Image<Bgr, byte> 17 Image<Bgr, byte> _image1 = umat.ToImage<Bgr, byte>(); 18 //Image<Bgr, byte>转UMat 19 UMat umat2 = image.ToUMat();
20 21 imageBox1.Image =mat;
22 imgLoad.Image = image;
更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。
想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!