在OpenCV中,normalize函數用于將數組中的值縮放到特定的范圍內。
函數的原型如下:
void normalize(InputArray src, OutputArray dst, double alpha=1, double beta=0, int norm_type=NORM_L2, int dtype=-1, InputArray mask=noArray());
參數說明:
- src:輸入數組,可以是單通道或多通道的圖像,數據類型可以是CV_8U、CV_16U、CV_32F或CV_64F。
- dst:輸出數組,與輸入數組具有相同的尺寸和數據類型。
- alpha:縮放系數,將src中的值乘以alpha后,再加上beta。
- beta:偏移量,將src中的值乘以alpha后,再加上beta。
- norm_type:歸一化類型,指定如何計算歸一化的范數。默認值為NORM_L2,表示計算L2范數。其他可選值有NORM_INF(計算無窮范數)和NORM_MINMAX(將值歸一化到[0, 1]之間)。
- dtype:輸出數組的數據類型,如果為-1,則與輸入數組的數據類型相同。
- mask:可選的掩碼,指定哪些元素需要進行歸一化。如果不需要掩碼,則使用默認值noArray()。
使用normalize函數可以將圖像的像素值歸一化到特定范圍內,常用的操作有:
- 將圖像像素值歸一化到[0, 1]范圍內:normalize(src, dst, 0, 1, NORM_MINMAX);
- 將圖像像素值歸一化到[-1, 1]范圍內:normalize(src, dst, -1, 1, NORM_MINMAX);
- 將圖像像素值歸一化到[0, 255]范圍內:normalize(src, dst, 0, 255, NORM_MINMAX, CV_8U);