用到的一些函数,今后方便查询。(本文将不断更新)
cvPyrDown函数:缩放图像为源图像的一半
void cvPyrDown(const CvArr*src,CvArr*dst,int filter=CV_GAUSSIAN_5x5);
参数:
src 输入图像。
dst 输出图像,其宽度和高度应是输入图像的一半。
filter 卷积滤波器类型,目前仅支持CV_GAUSSIAN_5x5。
-------------------------------------------------------------
CV_MAT_ELEM 宏:从矩阵中取出元素
参数1:待提取的矩阵
参数2:元素类型
参数3:矩阵的行
参数4:矩阵的列
类似函数(宏):CV_MAT_ELEM_PTR 返回的是指针,使用前需要转换成需要的指针
-------------------------------------------------------------
cvPtr1D函数:从矩阵中取出元素所在的指针() //有函数族:cvPtr*D
如果只是取出元素的数据,可以使用cvGet*D
浮点型的单通道矩阵,可以使用cvmSet或者cvmGet函数,很简单
-------------------------------------------------------------
矩阵和图像的基本操作的函数
1、cvAddS:计算数量和数组的和
void cvAddS( const CvArr* src, CvScalar value, CvArr* dst, const CvArr*
mask=NULL );
src原数组.
value被加入数量
dst输出数组
mask操作的覆盖面(8-bit 单通道数组)
;只有覆盖面指定的输出数组被修改
函数cvAddS 用数量值与原数组src1 的每个元素想加并存贮结果到
dst(I)=src(I)+value if mask(I)!=0
除覆盖面外所有数组都必须有相同的类型,相同的大小(或ROI 大小)
2、cvAbsDiff 计算两个数组差的绝对值的函数。
void cvAbsDiff( const CvArr* src1, const CvArr* src2, CvArr* dst );
src1 第一个原数组
src2 第二个原数组
dst 输出数组
dst(I)c = abs(src1(I)c - src2(I)c).
所有数组必须有相同的数据类型相同的大小(或ROI大小)
3、cvAbsDiffS 计算数组元素与数量之间差的绝对值
void cvAbsDiffS( const CvArr* src, CvArr* dst, CvScalar value );
src原数组.
dst输出数组
value数量.
dst(I)c = abs(src(I)c - valuec).
所有数组必须有相同的数据类型相同的大小(或ROI大小)
4、cvAdd() 两个数组元素级的加运算
5、vAddWeighted(
const
CvArr* src1,
double
alpha,
const
CvArr* src2,
double
beta,
double
gamma, CvArr* dst );
src1 第一个原数组.
alpha 第一个数组元素的权值
src2 第二个原数组
beta 第二个数组元素的权值
dst 输出数组
gamma 添加的常数项。
函数功能: cvAddWeighted 计算两数组的加权值的和:
dst(I)=src1(I)*alpha+src2(I)*beta+gamma
所有的数组必须有相同的类型相同的大小(或ROI大小)
6、cvAvg 计算两个数组的平均值
8、cvCmp 两个矩阵进行比较运算
void cvCmp(const CvArr* src1, constCvArr* src2, CvArr* dst, int cmp_op);//两矩阵比较运算
如果判断为假,dst设为0,如果判断为真,dst设为0xff
cvCmpS 数组与标量进行的比较运算,(输入数组只能是单通道)
9、cvConvertScale 使用线性变换(缩放)转换数组
void cvConvertScale( const CvArr* src, CvArr* dst, double scale=1, double shift=0 );
src 输入数组.
dst 输出数组
scale 比例因子.
shift 该加数被加到输入数组元素按比例缩放后得到的元素上
10、cvConvertScaleAbs 使用线性变换转换输入数组元素成8位无符号整型
void cvConvertScaleAbs( const CvArr* src, CvArr* dst, double scale=1, double shift=0 );
其中参数含义:
src : 原数组
dst :输出数组 (深度为 8u).
scale :比例因子.
shift :原数组元素按比例缩放后添加的值。
函数 cvConvertScaleAbs 与前一函数是相同的,但它是存贮变换结果的绝对值:
dst(I)=abs(src(I)*scale + (shift,shift,...))
11、cvCountNonZero //计算数组中非0元素的个数
12、cvDet 计算方阵的行列式
13、cvDiv 用另外的数组对原数组进行元素级的除法运算
14、cvFlip 沿着某个轴旋转
更多函数: