OpenCV學習筆記1 向量類Vec

2021-10-19 21:55:59 字數 1411 閱讀 7788

vector(向量): c++中的一種資料結構,確切的說是乙個類,其相當於乙個動態的陣列,類似的陣列替代品還有array類。

此向量可以理解為數學意義上的列向量,構造乙個_cn×1的列向量,資料型別為 _tp,格式如下:

vec//預設是列向量

如構造乙個長度為3,資料型別為int且初始化為1、3、4的列向量。

vecvi (1,3,4);

可以通過「」或者「()」操作符訪問向量中的值:

vi[0] //訪問第1個元素

vi[1] //訪問第2個元素

typedef vecvec3b;

typedef vecvec2i;

typedef vecvec4f;

typedef vecvec3d;

解釋typedef vecvec3b;只要理解 vec即可,這句就是定義乙個uchar型別的陣列,長度為3。

例如 8u 型別的 rgb 彩色影象可以使用 vec3b,3 通道 float 型別的矩陣可以使用 vec3f。

例1:對於 vec 物件,可以使用符號如運算元組般讀寫其元素,如:

vec3b color; //用 color 變數描述一種 rgb 顏色

color[0]=255; //b 分量

color[1]=0; //g 分量

color[2]=0; //r 分量

例2:

vec3f point =

vec3f(10

,10,3.2);

//float, 3 components

mat mat(3

,3,cv_32fc3,);

//3 channel matrix

vec3f v3f = mat.at

(y, x)

;//read color values for pixel (y,x)

注釋:注釋一下:vec3f是一種資料型別,其是3通道的float,後面的mat.at(y, x)是訪問影象的一種方式,詳細見c++的成員函式at()和畫素操作。

1.標頭檔案:vector.hpp

在程式開頭處加上#include

2.變數宣告:

2.1 例:宣告乙個int向量以替代一維的陣列:vector a;(等於宣告了乙個int陣列a,大小沒有指定,可以動態的向裡面新增刪除)。

2.2 例:用vector代替二維陣列。只要宣告乙個一維陣列向量即可,而乙個陣列的名字其實代表的是它的首位址,所以只要宣告乙個位址的向量即可,即:vector a。同理,用向量代替三維陣列也是一樣vector a;再往上面依此類推。

1.2.

3.

OPENCV學習筆記 1

剛上研一,本身想對嵌入式進行一番學習,結果實習的時候用opencv搞影象識別,有點讓人失望。不過畢竟是ai的電腦視覺方面的東西,所以也就報有很大熱情學的,業餘還得鞏固基礎c c 的書 等把c primer再看一遍後進軍sdk了,得等多久到mfc啊 csdn開了部落格,寫了些,後來才發現有學生大本營,...

OpenCV 學習筆記1

將opencv和vs配置成功後,開始編寫程式。值得說明的是,在opencv中,有以下兩種形式的函式呼叫,一種定義在highgui c.h中,例如 cvnamedwindow test cv window autosize 這種形式的函式呼叫要使用cv作為函式的限定 一種定義在highgui.hpp中...

opencv學習筆記 1

cvloadimage iplimage cvloadimage const char filename,int flags cv load image color filename 要被讀入的檔案的檔名 包括字尾 flags 指定讀入影象的顏色和深度 指定的顏色可以將輸入的轉為3通道 cv loa...