1. CV_IABS()的意思
/* absolute value without jumps */
#ifndef __cplusplus
#define CV_IABS(a) (((a) ^ ((a) < 0 ? -1 : 0)) - ((a) < 0 ? -1 : 0))
#else
#define CV_IABS(a) abs(a)
#endif
#ifndef __cplusplus
#define CV_IABS(a) (((a) ^ ((a) < 0 ? -1 : 0)) - ((a) < 0 ? -1 : 0))
#else
#define CV_IABS(a) abs(a)
#endif
以上是该函数的声明,表示如果没有定义__cplusplus那么定义该函数的返回值为后面的表达式;如果定义了,则返回绝对值。用-10,0,10这3个值代入a,算出结果分别为:10,0,10。再看第一种情况后的表达式,其实也是个绝对值算法的实现而已。