1. 程式人生 > >opencv的矩陣運算

opencv的矩陣運算

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

1。矩陣的點運算

對應:加,減,點乘,點除,點絕對差,點位運算—與,點位運算—或,點位運算—異或,點最大,點最小,點比較。
Example. Alpha compositing function:

void alphaCompose(constMat& rgba1,constMat& 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.