1. 程式人生 > >Mat類的函式說明

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