關於Mat的類的總結

2021-10-24 03:37:06 字數 1343 閱讀 6866

scalar定義的事顏色,彩色,對應rgb三個通道,所以形式為scalar(r,g,b)。注意是首字母大寫,還有括號。還有一種用法是scalar::all(0),全部都是0,或者其他,自己改變量值

size是尺寸,顧名思義就是長和寬,所以兩個引數。一半兩個以上資料就要括號。c++有個函式求位元組的事sizeof(),注意區別

需要起始座標x,y,寬,和高。rect(x,y,width,height)

其他小類看書,顏色轉換。輸入輸出,還有轉換型別,還有乙個通道數,一般可以忽略。cvtcolor(scrimage,dstimage,cv_rgb2gtay)

1.mat()建構函式,這告訴尺寸長和寬,還有通道的型別,如果是彩色還有顏色等等。如mat m(640,420,cv_8uc3,scalar(225,102,255));這裡通道是三通道顏色,所以要看顏色。

2.zeros,eye,ones等。需要告知尺寸和通道型別。

m e=mat::eye(4,4,cv_64f);

m e=mat::zeros(4,4,cv_64f);

m e=mat::ones(4,4,cv_64f);

3.複製的形式。

scr.copyto(dst);

mat dstclone=scr.clone();

image.copyto(imageroi)。作用是把image的內容複製貼上到imageroi上;mage.copyto(imageroi,mask)。 作用是把mask和image重疊以後把mask中畫素值為0(black)的點對應的image中的點變為透明,而保留其他點

其他,不怎麼常用還很奇怪,比如:

c++構造,超過二維???

int sz[3]=;

mat l(3,sz,cv_8uc,scalar::all(0));

全部輸出的話,不用遍歷,直接coutstd::vector是乙個無線長的向量,是乙個容器,像堆疊一樣不斷放進去,要說明每乙個數都是什麼型別。

定義:vector < float > v;

放資料進去用:v.push.back(3);如果看成舉證的話可以看成是單列的。乙個數乙個分號,即尾部插入數字:vec.push_back(a);

其全部函式使用參考:

1.基本操作

(1)標頭檔案#include< vector>.

(2)建立vector物件,vector< int > vec;

(3)尾部插入數字:vec.push_back(a);尾部移除數字:vec.pop_back(a);

(4)使用下標訪問元素,cout<

opencv之基礎篇(關於Mat類的使用)

opencv中常見的與影象操作有關的資料容器有mat,cvmat和iplimage,這三種型別都可以代表和顯示影象,但是,mat型別側重於計算,數學性較高。而cvmat和iplimage型別更側重於 影象 在opencv2.0之前,opencv是完全用c實現的,但是,iplimage型別與cvmat...

三 Mat類的使用

mat是一類,由兩個資料部分組成 矩陣頭 包含矩陣尺寸,儲存方法,儲存位址等 和乙個儲存所有畫素值的矩陣 可以是不同維度的矩陣 乙個儲存了所有畫素值,所以,不應該進行大的複製。opencv有個機制,針對同一張影象,讓每個mat有不同的矩陣頭,但是有相同的畫素矩陣,及共享乙個矩陣。這樣的做法,也會導致...

OpenCV學習筆記七 關於Mat類

1 建立乙個mat物件僅僅是建立了資訊頭部分,並沒有複製影象矩陣,而是通過矩陣指標指向某一位址而實現。eg mat a,c 僅建立資訊頭部分 mat b a 使用拷貝建構函式 c a 賦值運算子 以上建立的所有mat物件最終都指向同乙個也是唯一的乙個資料矩陣。雖然資訊頭不同,但是通過任何乙個物件所做...