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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章