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);