初探opencv Mat物件相關操作

2021-09-06 14:43:23 字數 2237 閱讀 9274

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按...