函数原型:
#define cvAbs (src,dst ) cvAbsDiffS( (src), (dst), cvScalarAll(0))
函数功能:计算图像每个元素的绝对值,存入输出图像
#define代表cvAbs(src,dst ) 等同于 cvAbsDiffS( (src), (dst), cvScalarAll(0));
cvScalarAll(0):表示标量为0
cvAbsDiffS函数
函数原型:
void cvAbsDiffS (
const CvArr * src,
CvArr * dst,
CvScalar value
)
/* dst(x,y,c) = abs(src(x,y,c) - value(c))*/
函数功能:计算图像每个元素与标量之间差的绝对值,存入输出图像
参数列表:
src: 输入数组
dst: 输出数组
value:标量
要求输入图像1、2和输出图像的size和type要相同
备注:
1.在OpenCV中Mat、CvMat和IplImage类型都可以代表和显示图像
IplImage由CvMat派生,而CvMat由CvArr派生
即CvArr -> CvMat -> IplImage,
Mat类型则是C++版本的矩阵类型
CvArr用作函数的参数,无论传入的是CvMat或IplImage,内部都是按CvMat处理
2.CvScalar定义可存放1—4个double数值。
如果使用的图像是1通道的,则s.val[0]中存储数据
如果使用的图像是3通道的,则s.val[0],s.val[1],s.val[2]中存储数据
3.要求输入图像1、2和输出图像的size和type要相同
size:图像大小
type: Mat矩阵的类型,包含有矩阵中元素的类型以及通道数信息,type的命名格式为CV_(位数)+(数据类型)+(通道数),如CV_16UC2,表示的是元素类型是一个16位的无符号整数,通道为2.