OpenCV笔记 图像处理基本函数汇总 C++版

一、矩阵运算

1.基本运算

序号函数说明
1void add(InputArray src1, InputArray src2, OutputArray dst,InputArray mask = noArray(), int dtype = -1)矩阵加法,A+B的更高级形式,支持mask
2void subtract(InputArray src1, InputArray src2, OutputArray dst,InputArray mask = noArray(), int dtype = -1)矩阵减法,A-B的更高级形式,支持mask
3void multiply(InputArray src1, InputArray src2, OutputArray dst, double scale = 1, int dtype = -1)矩阵逐元素乘法,同Mat::mul()函数,与A*B区别,支持mask
4void divide(InputArray src1, InputArray src2, OutputArray dst,double scale = 1, int dtype = -1)矩阵逐元素除法,与A/B区别,支持mask

2.逻辑运算

序号函数说明
1void bitwise_and(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray())矩阵src1与矩阵src2逐元素进行和位运算
2void bitwise_not(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray())矩阵src1与矩阵src2逐元素进行非位运算
3void bitwise_or(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray())矩阵src1与矩阵src2逐元素进行或位运算
4void bitwise_xor(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray())矩阵src1与矩阵src2逐元素进行异或位运算

3.比较运算

序号函数说明
1void compare(InputArray src1, InputArray src2, OutputArray dst, int cmpop)矩阵逐元素比较大小,比较操作子cmpop可选 CMP_EQ 或 CMP_GT 或 CMP_GE 或 CMP_LT 或 CMP_LE 或 CMP_NE
2MatExpr min(const Mat& a, const Mat& b)返回矩阵a和矩阵b对应位置上的最小值
3MatExpr max(const Mat& a, const Mat& b)返回矩阵a和矩阵b对应位置上的最大值

4.其它运算

序号函数说明
1MatExpr abs(const Mat& m)矩阵逐元素求绝对值
2void absdiff(InputArray src1, InputArray src2, OutputArray dst)两个矩阵的差的绝对值
3void sqrt(InputArray src, OutputArray dst)矩阵逐元素计算元素值的平方根
4void meanStdDev(InputArray src, OutputArray mean, OutputArray stddev, InputArray mask=noArray())矩阵的元素求均值和标准差
5Scalar sum(InputArray src)矩阵的元素求和,返回向量的第一个元素为所有元素之和
6Scalar mean(InputArray src, InputArray mask = noArray())矩阵的元素求均值,返回向量的第一个元素为所有元素的平均值
7void exp(InputArray src, OutputArray dst)矩阵逐元素计算 e ^ x ,x为元素值
8pow(InputArray src, double power, OutputArray dst)矩阵逐元素计算元素值的power次幂
9void log(InputArray src, OutputArray dst)矩阵逐元素计算元素值绝对值的自然对数(以常数e为底数的对数)
10int countNonZero( InputArray src )统计矩阵中的非零值个数
11void minMaxLoc(InputArray src, CV_OUT double* minVal,CV_OUT double* maxVal = 0, CV_OUT Point* minLoc = 0, CV_OUT Point* maxLoc = 0, InputArray mask = noArray())获取矩阵最小值、最大值,并定位对应的索引值

二、线性代数与方程式

1.线性代数

序号函数说明
1void transpose(InputArray src, OutputArray dst)矩阵转置
2Scalar trace(InputArray mtx)矩阵的迹
3double determinant(InputArray mtx)矩阵的行列式
4bool eigen(InputArray src, OutputArray eigenvalues,OutputArray eigenvectors = noArray())矩阵的特征值和特征向量
5double invert(InputArray src, OutputArray dst, int flags = DECOMP_LU)矩阵的逆或者伪逆
6void mulTransposed( InputArray src, OutputArray dst, bool aTa,InputArray delta = noArray(),double scale = 1, int dtype = -1 )矩阵和它自己的转置相乘,aTa用于指定乘法顺序
7void calcCovarMatrix( InputArray samples, OutputArray covar,InputOutputArray mean, int flags, int ctype = CV_64F)计算协方差阵。samples表示输入的向量集,它们可以是若干个同样形式的向量组成,也可以是一个矩阵的若干行组成;nsamples表示输入的向量的数目;covar表示输出的协方差矩阵;mean: 输出的均值矩阵

2.方程式

序号函数说明
1int solveCubic(InputArray coeffs, OutputArray roots)求解三次方程的根。coeffs表示方程系数,是一个3或4个元素的数组;roots表示输出具有1或3个元素的实根的数组
2double solvePoly(InputArray coeffs, OutputArray roots, int maxIters = 300)求解多项式的实根和重根。maxIters 表示算法执行的最大迭代次数

三、图像变换

1.基本变换

序号函数说明
1void reduce(InputArray src, OutputArray dst, int dim, int rtype, int dtype = -1)矩阵转向量。dim表示矩阵被简化后的维数索引(0意味着矩阵被处理成一行,1意味着矩阵被处理成为一列,-1意味着维数将根据输出向量的大小自动选择);rtype表示简化操作的方式(REDUCE_SUM或REDUCE_AVG或REDUCE_MAX或REDUCE_MIN),即输出是矩阵的所有行/列的和/均值/最大值/最小值
2void repeat(InputArray src, int ny, int nx, OutputArray dst)拷贝矩阵,并在x/y方向重复nx/ny次
3void split(InputArray m, OutputArrayOfArrays mv)多通道矩阵分解成多个单通道矩阵
4void merge(InputArrayOfArrays mv, OutputArray dst)多个单通道矩阵合成一个多通道矩阵
5void flip(InputArray src, OutputArray dst, int flipCode)矩阵翻转。flipCode可选:0 垂直方向翻转; 1 水平方向翻转; -1 水平、垂直方向同时翻转
6double norm(InputArray src1, int normType = NORM_L2, InputArray mask = noArray())求范数,1-范数、2-范数、无穷范数

2.频率域变换

序号函数说明
1void dct(InputArray src, OutputArray dst, int flags = 0)正离散余弦变换
2void idct(InputArray src, OutputArray dst, int flags = 0)逆离散余弦变换
3void dft(InputArray src, OutputArray dst, int flags = 0, int nonzeroRows = 0)正离散傅立叶变换,idct等同dct(src, dst, flags
4void idft(InputArray src, OutputArray dst, int flags = 0, int nonzeroRows = 0)逆离散傅立叶变换,idft等同dft(src, dst, flags
5void mulSpectrums(InputArray a, InputArray b, OutputArray c, int flags, bool conjB = false)两个傅立叶频谱间逐元素的乘法

3.幅值与相位

序号函数说明
1void magnitude(InputArray x, InputArray y, OutputArray magnitude)计算矢量的幅值。x表示矢量的浮点型X坐标值,也就是实部;y表示矢量的浮点型Y坐标值,也就是虚部
2void phase(InputArray x, InputArray y, OutputArray angle,bool angleInDegrees = false)相位计算,即两个向量之间的夹角

4.查表变换

序号函数说明
1void LUT(InputArray src, InputArray lut, OutputArray dst)查表变换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉闫小亘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值