opencv中step、step1、size、elemSize以及elemSize1区别

本文详细探讨了OpenCV库中矩阵步长step、step1、尺寸size以及元素大小elemSize和elemSize1的区别。step表示行偏移量,用于计算矩阵中元素的地址;step1简化了多通道图像的处理;size返回矩阵的维度;elemSize和elemSize1分别给出了单通道和多通道元素的字节数。了解这些概念对于高效使用OpenCV处理图像至关重要。

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

int main()
{
	int matSize[] = {3,4,5};
	//mat1有3维,3个面,4行5列组成一个面
	Mat mat1(3,matSize,CV_16UC3,Scalar::all(0));
	//step[i]表示每一维元素的大小,单位字节
	cout << "step[0]: " << mat1.step[0] << endl;//表示面的大小,每个面4行,所以是120
	cout << "step[1]: " << mat1.step[1] << endl;//表示线的大小,每行5个元素,每个元素大小6,因此为30
	cout << "step[2]: " << mat1.step[2] << endl;//表示点的大小,16UC3表明点的大小是6
	//size[i]表示每维元素的个数
	cout << "size[0]: " << mat1.size[0] << endl;//3
	cout << "size[1]: " << mat1.size[1] << endl;//4
	cout << "size[2]: " << mat1.size[2] << endl;//5
	//step1(i)表示每维元素的通道数
	cout << "step1[0]: " << mat1.step1(0) << endl;//15*4=60
	cout << "step1[1]: " << mat1.step1(1) << endl;//5*3=15
	cout << "step1[2]: " << mat1.step1(2) << endl;//16UC3表示通道数是3
	cout << "elemSize: " << mat1.elemSize() << endl;//每个元素的大小,6
	cout
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值