Mat類的函式說明
轉載自http://www.cnblogs.com/Jack-Lee/p/3652957.html
便於查閱
add |
矩陣加法,A+B的更高階形式,支援mask |
scaleAdd |
矩陣加法,一個帶有縮放因子dst(I) = scale * src1(I) + src2(I) |
addWeighted |
矩陣加法,兩個帶有縮放因子dst(I) = saturate(src1(I) * alpha + src2(I) * beta + gamma) |
subtract |
矩陣減法,A-B的更高階形式,支援mask |
multiply |
矩陣逐元素乘法,同Mat::mul()函式,與A*B區別,支援mask |
gemm |
一個廣義的矩陣乘法操作 |
divide |
矩陣逐元素除法,與A/B區別,支援mask |
abs |
對每個元素求絕對值 |
absdiff |
兩個矩陣的差的絕對值 |
exp |
求每個矩陣元素 src(I) 的自然數 e 的 src(I) 次冪 dst[I] = esrc(I) |
pow |
求每個矩陣元素 src(I) 的 p 次冪 dst[I] = src(I)p |
log |
求每個矩陣元素的自然數底 dst[I] = log|src(I)| (if src != 0) |
sqrt |
求每個矩陣元素的平方根 |
min, max |
求每個元素的最小值或最大值返回這個矩陣 dst(I) = min(src1(I), src2(I)), max同 |
minMaxLoc |
定位矩陣中最小值、最大值的位置 |
compare |
返回逐個元素比較結果的矩陣 |
bitwise_and, bitwise_not, bitwise_or, bitwise_xor |
每個元素進行位運算,分別是和、非、或、異或 |
cvarrToMat |
舊版資料CvMat,IplImage,CvMatND轉換到新版資料Mat |
extractImageCOI |
從舊版資料中提取指定的通道矩陣給新版資料Mat |
randu |
以Uniform分佈產生隨機數填充矩陣,同 RNG::fill(mat, RNG::UNIFORM) |
randn |
以Normal分佈產生隨機數填充矩陣,同 RNG::fill(mat, RNG::NORMAL) |
randShuffle |
隨機打亂一個一維向量的元素順序 |
theRNG() |
返回一個預設構造的RNG類的物件 theRNG()::fill(...) |
reduce |
矩陣縮成向量 |
repeat |
矩陣拷貝的時候指定按x/y方向重複 |
split |
多通道矩陣分解成多個單通道矩陣 |
merge |
多個單通道矩陣合成一個多通道矩陣 |
mixChannels |
矩陣間通道拷貝,如Rgba[]到Rgb[]和Alpha[] |
sort, sortIdx |
為矩陣的每行或每列元素排序 |
setIdentity |
設定單元矩陣 |
completeSymm |
矩陣上下三角拷貝 |
inRange |
檢查元素的取值範圍是否在另兩個矩陣的元素取值之間,返回驗證矩陣 |
checkRange |
檢查矩陣的每個元素的取值是否在最小值與最大值之間,返回驗證結果bool |
sum |
求矩陣的元素和 |
mean |
求均值 |
meanStdDev |
均值和標準差 |
countNonZero |
統計非零值個數 |
cartToPolar, polarToCart |
笛卡爾座標與極座標之間的轉換 |
flip |
矩陣翻轉 |
transpose |
矩陣轉置,比較 Mat::t() AT |
trace |
矩陣的跡 |
determinant |
行列式 |A|, det(A) |
eigen |
矩陣的特徵值和特徵向量 |
invert |
矩陣的逆或者偽逆,比較 Mat::inv() |
magnitude |
向量長度計算 dst(I) = sqrt(x(I)2 + y(I)2) |
Mahalanobis |
Mahalanobis距離計算 |
phase |
相位計算,即兩個向量之間的夾角 |
norm |
求範數,1-範數、2-範數、無窮範數 |
normalize |
標準化 |
mulTransposed |
矩陣和它自己的轉置相乘 AT * A, dst = scale(src - delta)T(src - delta) |
convertScaleAbs |
先縮放元素再取絕對值,最後轉換格式為8bit型 |
calcCovarMatrix |
計算協方差陣 |
solve |
求解1個或多個線性系統或者求解最小平方問題(least-squares problem) |
solveCubic |
求解三次方程的根 |
solvePoly |
求解多項式的實根和重根 |
dct, idct |
正、逆離散餘弦變換,idct同dct(src, dst, flags | DCT_INVERSE) |
dft, idft |
正、逆離散傅立葉變換, idft同dft(src, dst, flags | DTF_INVERSE) |
LUT |
查表變換 |
getOptimalDFTSize |
返回一個優化過的DFT大小 |
mulSpecturms |
兩個傅立葉頻譜間逐元素的乘法 |
1.矩陣的點運算
add(), subtract(), multiply(), divide(), absdiff(), bitwise_and(), bitwise_or(), bitwise_xor(),max(),min(), compare()
對應:加,減,點乘,點除,點絕對差,點位運算—與,點位運算—或,點位運算—異或,點最大,點最小,點比較。
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.
參考資料:http://tmjfzy.blog.163.com/blog/static/66447025201262122353504/
http://blog.163.com/yuyang_tech/blog/static/2160500832013260492210