OpenCV中简单矩阵运算

OpenCV 2.4 Cheat Sheet (C++)系列——Simple Matrix Operations

1。矩阵的点运算

add(), subtract(), multiply(), divide(), absdiff(), bitwise_and(), bitwise_or(), bitwise_xor(),max(),min(), compare()

对应:加,减,点乘,点除,点绝对差,点位运算—与,点位运算—或,点位运算—异或,点最大,点最小,点比较。
Example. Alpha compositing function:

 
  

void alphaCompose(const Mat& rgba1,const Mat& rgba2, Mat& rgba dest) { Mat a1(rgba1.size(), rgba1.type()), ra1; Mat a2(rgba2.size(), rgba2.type()); int mixch[]={3, 0, 3, 1, 3, 2, 3, 3}; mixChannels(&rgba1, 1, &a1, 1, mixch, 4); mixChannels(&rgba2, 1, &a2, 1, mixch, 4); subtract(Scalar::all(255), a1, ra1); bitwise_or(a1, Scalar(0,0,0,255), a1); bitwise_or(a2, Scalar(0,0,0,255), a2); multiply(a2, ra1, a2, 1./255); multiply(a1, rgba1, a1, 1./255); multiply(a2, rgba2, a2, 1./255); add(a1, a2, rgba dest); }

2。矩阵的统计运算
sum(), mean(), meanStdDev(), norm(), countNonZero(),minMaxLoc(),
对应:求和,求均值,求均方差,求范数,求非零元素个数,求最大最小元素及位置。
3。基本数学运算
exp(), log(), pow(), sqrt(), cartToPolar(),polarToCart()
对应:矩阵元素的指数,对数,乘方,开方,计算二维向量的长度和/或者角度,计算极坐标形式的二维向量对应的直角坐标.
4。代数运算和SVD
scaleAdd(), transpose(), gemm(), invert(), solve(),determinant(), trace(), eigen(), SVD,
对应:
计算一个数组缩放后与另一个数组的和(dst(I)=src1(I)*scale + src2(I)),矩阵的转置 dst(i,j)=src(j,i) ,矩阵乘法 dst = alpha*op(src1)*op(src2) + beta*op(src3)这里 op(X) 是 X 或者 XT, 查找矩阵的逆矩阵或伪逆矩阵,求解线性系统或者最小二乘法问题,返回浮点方阵的行列式,返回矩阵的迹,计算对称矩阵的特征值和特征向量,对实数浮点矩阵进行奇异值分解。
5。离散傅里叶变换和离散余弦变换
dft(), idft(), dct(), idct(),
对应:离散傅里叶变换,离散傅里叶反变换,离散余弦变换,离散余弦反变换。
For some operations a more convenient algebraic notation can be used, for example:
Mat delta = (J.t()*J + lambda*Mat::eye(J.cols, J.cols, J.type())).inv(CV SVD)*(J.t()*err);
implements the core of Levenberg-Marquardt optimization algorithm.

你可能感兴趣的:(图像处理,计算机视觉)