1.1、API介绍
void normalize( InputArray src, InputOutputArray dst, double alpha = 1,
double beta = 0, int norm_type = NORM_L2,
int dtype = -1, InputArray mask = noArray());
参数src:输入图像;
参数dst:输出图像,和原图一样的大小;
参数alpha:①用来规范值②用来规范范围,且代表下限;
参数beta:①用来规范值②用来规范范围,且代表上限;
参数norm_type:归一化类型;
参数dtype:输出图像的深度;
参数mask:掩码。选择感兴趣区域,选定后只能对该区域进行操作。
1.2、归一化类型
①NORM_INF
d s t ( i , j ) = s r c ( i , j ) ∗ a l p h a m a x ( ∣ s r c ( i , j ) ∣ ) dst(i,j)=\frac{src(i,j)*alpha}{max(|src(i,j)|)} dst(i,j)=max(∣src(i,j)∣)src(i,j)∗alpha
②NORM_L1
d s t ( i , j ) = s r c ( i , j ) ∗ a l p h a ∑ ∣ s r c ( i , j ) ∣ dst(i,j)=\frac{src(i,j)*alpha}{\sum |src(i,j)|} dst(i,j)=∑∣src(i,j)∣src(i,j)∗alpha
③NORM_L2
d s t ( i , j ) = s r c ( i , j ) ∗ a l p h a ∑ ( s r c ( i , j ) 2 ) dst(i,j)=\frac{src(i,j)*alpha}{\sqrt{ \sum (src(i,j)^{2})}} dst(i,j)=∑(src(i,j)2)src(i,j)∗alpha
④NORM_MINMAX
d s t ( i , j ) = s r c ( i , j ) ∗ a l p h a m a x ( s r c ( i , j ) ) − m i n ( s r c ( i , j ) ) dst(i,j)=\frac{src(i,j)*alpha}{max(src(i,j))-min(src(i,j))} dst(i,j)=max(src(i,j))−min(src(i,j))src(i,j)∗alpha
当src(i,j) = max(src(i,j))时,dst(i,j) = 1;当src(i,j) = min(src(i,j))时,dst(i,j) = 0
⑤NORM_L2SQR
⑥NORM_HAMMING
⑦NORM_HAMMING2
⑧NORM_TYPE_MASK
⑨NORM_RELATIVE
在norm_type = NORM_L1 / NORM_L2 / NORM_INF这三种情况下,beta的取值与归一化结果无关,alpha的取值是对计算出的结果进行了缩放。
在norm_type = NORM_MINMAX情况下,alpha、beta的取值是确定了范围的边界,大小与取值顺序无关。
以上是规范化值得计算公式,要进行规范化范围,就需要在上述公式的基础上乘以要规范的范围,比如要规范到(0~255)之间,用NORM_MINMAX就有:
d s t ( i , j ) = s r c ( i , j ) − m i n ( s r c ) m a x ( s r c ) − m i n ( s r c ) ∗ ( b ′ − a ′ ) + a ′ dst(i,j)=\frac{src(i,j)-min(src)}{max(src)-min(src)}*(b'-a') +a' dst(i,j)=max(src)−min(src)src(i,j)−min(src)∗(b′−a′)+a′
其中 b ′ = m a x ( a , b ) , a ′ = m i n ( a , b ) b'=max(a, b),a'=min(a, b) b′=max(a,b),a′=min(a,b)
2.1、API介绍
void convertTo( OutputArray dst, int rtype, double alpha=1, double beta=0 )
参数dst:输出图像;
参数rtype:要转换的深度;
参数alpha:对灰度值的缩放倍数;
参数beta:对灰度值得增量。
公式: dst = satyrate_cast(src * alpha + beta);
3.1、API介绍
void minMaxLoc(InputArray src, CV_OUT double* minVal,
CV_OUT double* maxVal = 0, CV_OUT Point* minLoc = 0,
CV_OUT Point* maxLoc = 0, InputArray mask = noArray());
参数src:单通道图或数组。
参数minVal:查找到的最小值。
参数maxVal:查找到的最大值。
参数minLoc:查找到的最小值的坐标。
参数maxLoc:查找到的最大值得坐标。
3.2、作用
minmaxloc()函数的作用是查找数组中的最小和最大元素值及其位置。在整个数组中搜索极值,如果掩码不是空数组,则在指定的数组区域中搜索极值。该函数适用于单通道图,对于多通道图要进行通道分离。