学习图像处理知识----图像分析的数据结构

本文主要探讨EMGU CV中图像处理的数据结构,包括Mat、Matrix、Image等核心类。通过介绍各种矩阵变种,如Mat、UMat,并提供图像类型之间的转换示例,如Bitmap与Image<Bgr, byte>、Mat之间的相互转换,帮助读者深入理解图像分析的数据基础。" 79123578,1412006,Cg编程基础:语法、类型与内置函数解析,"['shader编程', 'Cg语言', 'Unity3D', '图形编程']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上篇对图像类中CvInvoke类简单学习初步使用方法,为了更好的学习图像处理。对图像的数据结构进行学习的必要。

矩阵,链,图,物体属性表,关系数据库,其中矩阵用的最多,数组矩阵。

在EMGUCV中图像操作有关的数据结构有Mat,Matrix,Image,CvArray,InputOutputArrayOutputArrayUMat等矩阵变种。


Image类 (Namespace:  Emgu.CV

Mat 类 Matrix

 常用构造函数:

1.public Image(
	Bitmap bmp  //net类中 bitmap 
)
public Mat() //可以为无参的构造函数
2.public Image(
	Size size    //创建空白尺寸的图片
)
public Mat(
	Size size,
	DepthType type,
	int channels
)
 
public Matrix(
	Size size
)
public Matrix(
	int rows,
	int cols,
	int channels
)

3.public Image(
 
	string fileName   //从文件中创建
)
public Mat(
	string fileName,
	ImreadModes loadType = ImreadModes.Color
)
4.public Image(
	TDepth[,,] data  //从多维数组中创建,第一位height,第二位width,第三位颜色通道。
)
public Matrix(
	TDepth[,] data
)
 
5.public Image(
 
Image < Gray , TDepth>[] channels// 从多个灰度图像创建一个多通道图像

)

public Mat(
	Mat mat,
	Rectangle roi
)


6.public Image(
//创建带颜色尺寸的图片
 
	int width,
	int height, 
	TColor value  
)

图像类型之间转换

  1. Bitmap bitmap = new Bitmap("test.jpg");  
  2.     //NET 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();  
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值