OpenCV的矩陣操作

2021-09-02 07:50:26 字數 2305 閱讀 4916

opencv中矩陣的基本操作:拷貝,轉換,改變尺寸,建立矩陣頭,區域性提取,反轉,分解合併通道,其他一些數學相關的操作。

cv::mat src,dst,m

1)src.copyto(dst)

把src矩陣中的資料拷貝到dst。

2)m.clone()

深度拷貝。

3)src.convertto(dst, type, scale, shift)

縮放並轉換到另外一種資料型別:

dst:目的矩陣

type:需要的輸出矩陣型別,或者更明確的,是輸出矩陣的深度,如果是負值(常用-1)則輸出矩陣和輸入矩陣型別相同

scale和shift:縮放引數,也可以寫為alpha和beta

這個函式等價於下面的轉換公式:m(x,y) = saturate_cast(α(*this)(x,y)+β)。

4)m.reshape(nch,nrows)

重設矩陣的通道數和行數,不拷貝資料。

nch:新的通道數,若為0則不變

nrows:新的行數,若為0則不變

5)m.row(i), m.col(i)

建立乙個矩陣頭,指向m矩陣的第i行/列,o(1)複雜度,不拷貝資料,新的矩陣頭所代表的矩陣和m矩陣的第i行/列共享資料。

6)m.rowrange(range(i1,i2))

m.colrange(range(j1,j2))

建立乙個矩陣頭,指向m矩陣的第i1到i2行或者第j1到j2列,o(1)複雜度,不拷貝資料。

7)m.diag(i)

建立乙個矩陣頭,指向m矩陣的對角線,生成的是乙個單列矩陣,o(1)複雜度,不拷貝資料。i=0時表示主對角線,i>0表示下半邊的對角線,i<0表示上半邊的對角線。

8)m(range(i1,i2),range(j1,j2))

從矩陣m中的第i1行到第i2行以及第j1列到第j2列所劃定的範圍提取乙個小矩陣。

類似於畫矩形框取區域:mat image(rect(10, 20, 100, 100));

9)m.repeat(ny,nx)

把m矩陣貼馬賽克,獲取乙個大矩陣,在y方向上重複ny次,在x方向上重複nx次。

10)flip(src,dst,dir)

翻轉矩陣,dir是翻轉方向,0表示沿x軸翻轉,1表示沿y軸翻轉,-1表示沿x軸和y軸都進行翻轉。

11)split(...)

把乙個多通道矩陣分解為幾個單通道矩陣,操作rgb影象之類的最常用。

12)merge(...)

和上面的操作相反。

mixchannels(...),上面兩個函式的一般形式。

13)randshuffle(...)

把矩陣中的元素隨機重排。

14)add(), subtract(), multiply(), divide(), absdiff(), bitwiseand(), bitwiseor(), bitwi***or(), max(), min(), compare()

分別是加減乘除、按位與或異或、最大最小之類的。

15)sum(), mean(), meanstddev(), norm(), countnonzero(), minmaxloc()

求和、均值、均值方差、矩陣範數、非零個數、最大最小值。

16)exp(), log(), pow(), sqrt(), carttopolar(), polartocart()

指數、對數、乘方、開放、極座標轉換。

17)scaleadd(), transpose(), gemm(), invert(), solve(), determinant(), trace(), eigen(), svd

線性組合、轉置、廣義矩陣乘法、矩陣求逆、解線性系統或最小二乘問題、計算行列式、矩陣的跡、計算對稱矩陣的特徵值和特徵向量、奇異值分解。

18)dft(), idft(), dct(), idct()

離散傅利葉變換、離散余弦變換。

opencv的矩陣操作

1 建立乙個大小為100 100的3通道2維矩陣,並將其所有資料置0,然後在上面畫乙個圓形並顯示這幅影象 include cv.h include cxcore.h include highgui.h include stdio.h int main return 0 執行結果如下圖 2 建立乙個擁...

Opencv矩陣操作

opencv 矩陣操作 cvmat 2009 06 08 20 10 分配矩陣空間 cvmat cvcreatemat int rows,int cols,int type type 矩陣元素型別.格式為cv s u f c.例如 cv 8uc1 表示8位無符號單通道矩陣,cv 32sc2表示32位...

OpenCv矩陣掩碼操作

定義 矩陣的掩碼操作就是重新計算影象中的每個畫素值。應用 常用於影象平滑,邊緣檢測,特徵分析等區域。方法 第一種使用公式,第二種使用filter2d 函式 include include includeusing namespace cv using namespace std int main n...