![](https://csdnimg.cn/release/download_crawler_static/58620871/bg4.jpg)
CV_CMP_NE -src1(I) 是否不等
如果判断为假, dst 设为 0,如果判断为真, dst 设为 0xff
void cvCmpS(const CvArr* src, double value, CvArr* dst, intcmp_op);// 矩阵和一个数字比
较运算
矩阵内转换 类型转换
void cvConvertScale(constCvArr* src,CvArr* dst,double scale,doubleshift);// 矩阵首先乘以
scale 再加上 shift ,然后把 src 中的数据类型转换成 dst 类型,但是 src 和 dst 通道数需要相
等
void cvConvertScaleAbs(const CvArr* src,CvArr* dst,doublescale,double shift);// 在 src 到
dst 类型转换前,先做绝对值
void cvCvtColor(const CvArr* src,CvArr* dst, int code);// 图像颜色空间转换, src 要为 8U
16U 32F ,dst 的数据类型需要和 src 相同,通道数看 code
code 格式如: CV_ 原色彩空间 2 目的色彩空间 色彩空间要考虑 RGB 的顺序
支持的颜色空间包括:
RGB RGB565 RGB555 GRAYRGBA XYZ YCrCb HSV HLS Luv BayerRG
空间转换
void cvFlip(const CvArr* src, CvArr*dst=NULL, intflip_mode=0);// 图像绕 x、y 轴旋转。 当用
在一维数组上时并且 flip_mode>0 ,可以用来颠倒数据排列
flip_mode=0 :左右对称 values of the conversion resul
flip_mode>0 :上下对称
flip_mode<0 :中心对称
矩阵间操作 void cvCopy(const CvArr* src,CvArr*dst,const CvArr* mask=NULL);
void cvMerge(const CvArr* src0,const CvArr* src1,const CvArr*src2,const CvArr*
src3,CvArr*dst);// 多个数组合并成一个,类型和尺寸都相同, dst 有多个通道, src 可以赋值
NULL
void cvSplit(cosnt CvArr* src,CvArr* dst0,CvArr* dst1,CvArr*dst2,CvArr* dst3);// 一个多通
道数组分解成多个数组,类型尺寸都想同, dst 可以赋值 NULL
void cvRepeat(const CvArr* src, CvArr*dst);// 在 dst 中重复叠加 src ,dst(i,j)=src(i mod
rows(src), j modcols(src))
CvMat* cvReshape(const CvArr* originalarr, CvMat* headerdata, intnew_cn,
intnew_rows=0);// 把一个 originalarr (可以是已经有内容的图片),转换为有新的通道数、
新的行数的数据( CvMat* 只含数据,没有图片头)
CvArr* cvReshapeMatND(const CvArr* arr, int sizeof_header, CvArr*header, int new_cn,
int new_dims, int* new_sizes);