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