赞
踩
转载https://blog.csdn.net/wangyang20170901/article/details/79006836
Mat类型数据的初始化方法可以有以下两种:
1、直接初始化
注意:初始化数组时常遇到“无法显示标识符”的提示,可能用了中文的逗号;
Mat转化为数组可以用以下两种方法:1、Mat中提供ptr函数
用ptr访问任意一行像素的首地址,然后当做指针来读取这一行的数据,适合一行一行的横向访问
直接给i,j赋值就可以随意访问图像中任何一个像素,其中j表示第j行,i表示该行第i个像素。如果访问所有的变量,效率很低。
矩阵数据类型:
– CV_<bit_depth>(S|U|F)C<number_of_channels>
S = 符号整型 U = 无符号整型 F = 浮点型
E.g.:
CV_8UC1 是指一个8位无符号整型单通道矩阵,
CV_32FC2是指一个32位浮点型双通道矩阵
CV_8UC1 CV_8SC1 CV_16U C1 CV_16SC1
CV_8UC2 CV_8SC2 CV_16UC2 CV_16SC2
CV_8UC3 CV_8SC3 CV_16UC3 CV_16SC3
CV_8UC4 CV_8SC4 CV_16UC4 CV_16SC4
CV_32SC1 CV_32FC1 CV_64FC1
CV_32SC2 CV_32FC2 CV_64FC2
CV_32SC3 CV_32FC3 CV_64FC3
CV_32SC4 CV_32FC4 CV_64FC4
其中,通道表示每个点能存放多少个数,类似于RGB彩色图中的每个像素点有三个值,即三通道的。
图片中的深度表示每个值由多少位来存储,是一个精度问题,一般图片是8bit(位)的,则深度是8.
前面讲到IplImage的数据结构,IplImage支持
IPL_DEPTH_8U,无符号8bit整数(8u)
IPL_DEPTH_8S,有符号8bit整数(8s)
IPL_DEPTH_16S,有符号16bit整数(16s)
IPL_DEPTH_32S,有符号32bit整数(32s)
IPL_DEPTH_32F,32bit浮点数,单精度(32f)
IPL_DEPTH_64F,64bit浮点数,双精度(64f)
IplImage支持1,2,3,4个通道,使用nChannels域标明。CvMat *mat=cvCreateMat(rows,cols,CV_<bit_depth>(S|U|F)C<number_of_channels>);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。