1.建構函式、拷貝方法、為畫素賦初值
#include
#include
#include
// mat物件的相應操作
using namespace cv;
using namespace std;
intmain
(int argc,
char
* argv)
mat dst;
//建構函式1
dst =
mat(src.
size()
, src.
type()
);
dst =
scalar
(127,0
,255);
// 為dst物件畫素賦初值
dst = src.
clone()
;// clone方法
src.
copyto
(dst)
;// copy方法 將src拷貝給dst
dst = src;
// 淺拷貝 只複製頭部
//clone、copyto函式都是深拷貝,即拷貝資料,也拷貝頭部資訊。
//建構函式2
mat m(3
,3, cv_8uc3,
scalar(0
,0,255))
;//3*3 畫素集合 畫素值型別為uchar 每個畫素三個通道 每個畫素值為 0 0 255
//cout << "m=" << m << endl;
//建構函式3
mat m1;
m1.create
(src.
size()
, src.
type()
);m1 =
scalar(0
,0,255);
// 是乙個資料結構 相當於顏色向量 為每乙個畫素賦值
waitkey(0
);return0;
}
2.初始化方法
#include
#include
#include
// mat物件的相應操作
using namespace cv;
using namespace std;
intmain
(int argc,
char
* argv)
//初始化方法
//類似於matlab的函式 初始化為純黑色
mat m2 = mat:
:zeros
(src.
size()
, src.
type()
);mat m3 = mat:
:zeros(2
,2, cv_8uc1)
;//mat m3 = mat::eye(2, 2, cv_8uc1); //這個也可以
cout <<
"m3 = "
<< m3 << endl;
waitkey(0
);return0;
}
3.色彩空間轉換
cvtcolor
(src, dst, cv_bgr2gray)
;// 轉換色彩空間 將src的三通道轉化為單通道灰圖
cout <<
"src:"
<< src.
channels()
<< endl;
cout <<
"dst:"
<< dst.
channels()
<< endl;
4.convertto函式的使用
可以將色素點的數值運算型別進行轉換:
mat m1 = mat:
:zeros
(src.
size()
,src.
type()
);// 將cv_8uc1 轉換為cv_32f 即從uchar轉換為float32
src.
convertto
(m1, cv_32f)
;imshow
("output4"
, m1)
;
OpenCV Mat相關結構體詳細介紹 0
眾所周知,mat是opencv最核心的核心資料結構,沒有這個靈活高效的mat,opencv也就沒有了靈魂。作為乙個初學者,只需要會簡單用一下mat當然就夠了,但是作為乙個有理想的程式猿,我們還是要挖掘挖掘,看看mat裡面還藏著什麼寶藏。我們將目光投向opencv modules core inclu...
OpenCV Mat物件建立及資料型別
1.使用opencv的c 介面時不需要考慮記憶體釋放問題。2.賦值運算子和拷貝建構函式只複製資訊頭。3.使用函式clone 或者copyto 來複製一幅影象的矩陣。1 建立mat物件 mat類提供了一系列建構函式,可以方便的根據需要建立mat物件。使用其中乙個用來具體的說明 mat mat int ...
C 物件模型初探
在c 中有兩種class data members static和non static,以及三種class member functions static non static 和virtual。簡單物件模型 乙個object由一系列的slots組成,每乙個slot指向乙個member,slots按...