OpenCv中norm()函数,cvNorm()函数,CV_L1,CV_L2等宏定义的源代码解读

/* types of array norm */
#define CV_C            1
#define CV_L1           2
#define CV_L2           4
#define CV_NORM_MASK    7
#define CV_RELATIVE     8
#define CV_DIFF         16
#define CV_MINMAX       32

#define CV_DIFF_C       (CV_DIFF | CV_C)
#define CV_DIFF_L1      (CV_DIFF | CV_L1)
#define CV_DIFF_L2      (CV_DIFF | CV_L2)
#define CV_RELATIVE_C   (CV_RELATIVE | CV_C)
#define CV_RELATIVE_L1  (CV_RELATIVE | CV_L1)
#define CV_RELATIVE_L2  (CV_RELATIVE | CV_L2)

/* Finds norm, difference norm or relative difference norm for an array (or two arrays) */
CVAPI(double)  cvNorm( const CvArr* arr1, 
                       const CvArr* arr2 CV_DEFAULT(NULL),
                       int   norm_type   CV_DEFAULT(CV_L2),
                       const CvArr* mask CV_DEFAULT(NULL) );

CVAPI(void)  cvNormalize( const CvArr* src,
                                CvArr* dst,
                          double a CV_DEFAULT(1.), 
						  double b CV_DEFAULT(0.),
                          int    norm_type   CV_DEFAULT(CV_L2),
                          const  CvArr* mask CV_DEFAULT(NULL) );
//==============================================================================================
CVAPI(double)  cvNorm( const CvArr* arr1, 
                       const CvArr* arr2 CV_DEFAULT(NULL),
                       int   norm_type   CV_DEFAULT(CV_L2),
                       const CvArr* mask CV_DEFAULT(NULL) );
//==============================================================================================
//文件注释:
//        以下的资料,可以参考学习OpenCv(于仕琪)81页
//时间地点:
//         2016.10.9 陕西师范的大学
//==============================================================================================
//【1】cvNorm()函数的作用:用于计算一个或者两个数组之间的范数,范数的类型由CV_L1,CV_L2这样的宏来决定
//【2】当cvNorm()函数中的第二个参数arr2 = NULL时,各个宏定义如下所示:
		#define CV_C            1          //[1]先对数组中的所有元素取绝对值,然后返回这些绝对值之间最大的那个数,作为cvNorm()函数的返回值
		#define CV_L1           2          //[2]先对数组中的所有元素取绝对值,然后对这些数进行绝对值累加----绝对值的累加和
		#define CV_L2           4          //[3]数组中所有元素平方的累加和
//【3】当cvNorm()函数中的第二个参数arr2非空的时候,各个宏定义如下所示:
		#define CV_C            1          //[1]先求解数组1和数组2对应元素的差值,然后对所有差值去绝对值,最后返回所有绝对值中最大的那个数作为函数的返回值
		#define CV_L1           2          //[2]先求解数组1和数组2对应元素的差值,然后对所有差值去绝对值,对这些绝对值进行累加求和
		#define CV_L2           4          //[3]先求解数组1和数组2对应元素的差值,然后求解各个差值平方的累加和
		#define CV_NORM_MASK    7
		#define CV_RELATIVE     8
		#define CV_DIFF         16
		#define CV_MINMAX       32

		#define CV_DIFF_C       (CV_DIFF | CV_C)
		#define CV_DIFF_L1      (CV_DIFF | CV_L1)
		#define CV_DIFF_L2      (CV_DIFF | CV_L2)
		#define CV_RELATIVE_C   (CV_RELATIVE | CV_C)
		#define CV_RELATIVE_L1  (CV_RELATIVE | CV_L1)
		#define CV_RELATIVE_L2  (CV_RELATIVE | CV_L2)















  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值