OpenCV:关于Mat的定义及简单运算

Mat类型

定义:CV_<bit_depth>(S|U|F)C<number_of_channels>

1、bit_depth—位数—代表8bite,16bites,32bites,64bites 对应每个像素值变量类型为char、short、int、long

2、S|U|F

 S代表signed int有符号整形 

 U代表unsigned int无符号整形

 F代表float单精度浮点型

3、C<number_of_channels>----代表—一张图片的通道数,比如:

1--灰度图片--grayImg---是--单通道图像

2--RGB彩色图像---------是--3通道图像8U 对应像素值类型为<Vec3b>

3--带Alph通道的RGB图像--是--4通道图像

矩阵运算:
对于一般的矩阵运算,如加、减、乘、转置、求逆等,都可以直接调用OpenCV库中的函数,如,求一个矩阵的转置:

	Mat m1= Mat::eye(2,3, CV_32F); 
	Mat m2= Mat::ones(3,2, CV_32F);
	//求转置
	m1.t();
	//求逆
	m1.inv();
	//矩阵相乘
	m1*m2;

在做矩阵相乘的时候要注意,参与计算的两个Mat矩阵的数据类型(type)只能是 CV_32F、 CV_64FC1、 CV_32FC2、 CV_64FC2 这4种类型中的一种。若选用其他类型,编译器会报错。具体还不清楚为什么会这样。

矩阵遍历


Mat image(row,col,CV_16FC1);
for (int i = 0;i < row;i++)
	for (int j = 0;j < col;j++)
	{
		depth.at<float>(i, j) = 数值;//注意这里.at<>尖括号里的类型是float类型,
									//应与前面说的“F”对应的精度相符合.
	}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GISerQ.

你的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值