转载自:http://blog.sina.com.cn/s/blog_7155fb1a0100slzp.html
Normalize
根据某种范数或者数值范围归一化数组.
void cvNormalize( const CvArr* src, CvArr* dst,
double a=1, double b=0, int norm_type=CV_L2,
const CvArr* mask=NULL );
src
输入数组
dst
输出数组,支持原地运算
a
输出数组的最小/最大值或者输出数组的范数
b
输出数组的最大/最小值
norm_type
归一化的类型,可以有以下的取值:
CV_C - 归一化数组的C-范数(绝对值的最大值)
CV_L1 - 归一化数组的L1-范数(绝对值的和)
CV_L2 - 归一化数组的(欧几里德)L2-范数
CV_MINMAX - 数组的数值被平移或缩放到一个指定的范围
mask
操作掩膜,用于指示函数是否仅仅对指定的元素进行操作
该函数归一化输入数组使它的范数或者数值范围在一定的范围内
对于不同的norm_type, 根据我的试验(mask=null)的时候, a,b(a>b)起的作用结果如下:
norm_type=CV_C时, src 被重新”缩放”(rescale)到dst, 使得dst的值是线性映射到[0,1]区间.(a,b其实无作用)
norm_type=CV_L1,或者 CV_L2时, 得到L1,L2规范化的dst.(a,b其实无作用)
norm_type=CV_MINMAX时, src会被缩放(rescale)和移动(translation)到dst,使得dst的值是线性映射到[b,a]区间.
代码:
#include
#include