opencv 矩阵数据类型及转换方式

opencv 矩阵数据类型及转换方式

在完成多个连续图像取色彩平均值时出现了处理后的图像色彩偏暗的情况(使用(pic1+pic2+…+picn)/n的方式求多个图像平均值),经过查找资料发现原因:
图像的矩阵数据类型8位的最大值只有255,多个图像相加后色彩最大值依旧为255,取平均时导致数值变小,故图像整体偏暗。
进行图像相加的时候所有图片需变成32位可解决此问题。

opencv矩阵数据类型及其取值范围:

在这里插入图片描述
数据类型中C1、C2、C3、C4为图像的通道数,如CV_8UC1为八位无符号数存储的单通道图像。

opencv矩阵数据类型转换方式:

使用convertTo(dst, type, scale, shift)函数:
dst:目的矩阵;
type:需要的输出矩阵类型,或者更明确的,是输出矩阵的深度,如果是负值(常用-1)则输出矩阵和输入矩阵类型相同;
scale:比例因子;
shift:将输入数组元素按比例缩放后添加的值;
如果scale=1,shift=0,则不进行比例缩放。
转化的实例代码如下:

Mat pic1(rows,cols,CV_32FC1); 
Mat pic2;  
pic2.convertTo(pic1,CV_32FC1,1,0);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值