Part11. 图像的属性
11.1 Mat 的主要属性
在前文中,我们大致了解了 Mat 的基本结构以及它的创建与赋值。接下来我们通过一个例子,来看看 Mat 所包含的常用属性。
先创建一个 3*4 的四通道的矩阵,并打印出其相关的属性,稍后会详细解释每个属性的含义。
Mat srcImage(3, 4, CV_16UC4, Scalar_<uchar>(1, 2, 3, 4));
cout << srcImage << endl;
cout << "dims:" << srcImage.dims << endl;
cout << "rows:" << srcImage.rows << endl;
cout << "cols:" << srcImage.cols << endl;
cout << "channels:" << srcImage.channels() << endl;
cout << "type:" << srcImage.type() << endl;
cout << "depth:" << srcImage.depth() << endl;
cout << "elemSize:" << srcImage.elemSize() << endl;
cout << "elemSize1:" << srcImage.elemSize1() << endl;
cout << "step:" << srcImage.step << endl;
cout << "step[0]:" << srcImage.step[0] << endl;
cout << "step[1]:" << srcImage.step[1] << endl;
cout << "step1[0]:" << srcImage.step1(0) << endl;
cout << "step1[1]:" << srcImage.step1(1) << endl;
输出结果:
[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4;
1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4;
1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
dims:2
rows:3
cols:4
channels:4
type:26
depth:2
elemSize:8
elemSize1:2
step:32
step[0]:32
step[1]:8
step1[0]:16
step1[1]:4
在上述例子中我们打印了 Mat 的很多属性,它们主要包括:
rows: 表示图像的高度。
cols:表示图像的宽度。
dims:表示矩阵的维度。
data:表示 Mat 对象中的指针(uchar 类型的指针),指向内存中存放矩阵数据的一块内存 (uchar* data)。
channels:表示通道数量;例如常见的 RGB、HSV 彩色图像,则 channels=3;若为灰度图,则 channels=1。
depth:表示图像的深度,它用来度量每一个像素中每一个通道的精度,它本身与通道数无关,它的数值越大表示精度越高。
| 数据类型 | depth 的值 | 数据类型 | 取值范围 | 对应 C++ 的类型 |
|---|---|---|---|---|
| CV_8U | 0 | 8 位无符号类型 | 0—255 | uchar, unsigned char |
| CV_8S | 1 | 8 位有符号类型 | -128—127 | char |
| CV_16U | 2 | 16 位无符号类型 | 0—65535 | ushort, unsigned short, unsigned short int |
| CV_16S | 3 | 16 位有符号类型 | -32768—32767 | short, short int |
| CV_32S | 4 | 32 位整数数据类型 | -2147483648—2147483647 | int, long |
| CV_32F | 5 | 32 位浮点数类型 | ±(1.18e-38……3.40e38) | float |
| CV_64F | 6 | 32 位双精度类型 | ±(2.23e-308……1.79e308) | double |
type:表示矩阵的数据类型,它包含矩阵中元素的类型以及通道数信息。
| 数据类型 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| CV_8U | CV_8UC1 | CV_8UC2 | CV_8UC3 | CV_8UC4 |
| CV_8S | CV_8SC1 | CV_8SC2 | CV_8SC3 | CV_8SC4 |
| CV_16U | CV_16UC1 | CV_16UC2 | CV_16UC3 | CV_16UC4 |

最低0.47元/天 解锁文章
2519

被折叠的 条评论
为什么被折叠?



