opencv基本資料型別

2021-08-31 13:42:16 字數 3611 閱讀 6957

目錄

1.點的表示:point_   point3_

2.尺寸的表示:size_

3.vec類:描述多通道mat的畫素

4.matx:已知尺寸的小mat模板類

5.顏色類scalar:

6.rect:矩形表示類

7.range類

8.cv::ptr指標模板

opencv中point_的定義(point3_基本相同):

// ​定義

typedef point_point2i;

typedef point_point2l;

typedef point_point2f;

typedef point_point2d;

typedef point2i point;

typedef point3_point3i;

typedef point3_point3f;

typedef point3_point3d;

//成員函式

//點積(數量積) x1*x1+y1*y2

_tp dot(const point_& pt) const;

//雙精度點積

double ddot(const point_& pt) const;

//叉乘(向量積)x1*y2-y1*x2

double cross(const point_& pt) const;

//檢查該點是否在指定矩形內

bool inside(const rect_<_tp>& r) const;

opencv中size_的定義:

​//定義

typedef size_size2i;

typedef size_size2l;

typedef size_size2f;

typedef size_size2d;

typedef size2i size;

//成員函式

//面積(width*height)

_tp area() const;

//面積是否為0

bool empty() const;

typedef vecvec2i;

typedef vecvec3i;

typedef vecvec4i;

typedef vecvec6i;

typedef vecvec8i;

typedef vecvec2f;

typedef vecvec3f;

typedef vecvec4f;

typedef vecvec6f;

typedef vecvec2d;

typedef vecvec3d;

typedef vecvec4d;

typedef vecvec6d;

//cv::mat img(10, 10, cv_8uc3,scalar(255,255,255));

uchar pixel = img.at(9, 9)[0];

typedef matxmatx12f;

typedef matxmatx12d;

typedef matxmatx13f;

typedef matxmatx13d;

typedef matxmatx14f;

typedef matxmatx14d;

typedef matxmatx16f;

typedef matxmatx16d;

typedef matxmatx21f;

typedef matxmatx21d;

typedef matxmatx31f;

typedef matxmatx31d;

typedef matxmatx41f;

typedef matxmatx41d;

typedef matxmatx61f;

typedef matxmatx61d;

typedef matxmatx22f;

typedef matxmatx22d;

typedef matxmatx23f;

typedef matxmatx23d;

typedef matxmatx32f;

typedef matxmatx32d;

typedef matxmatx33f;

typedef matxmatx33d;

typedef matxmatx34f;

typedef matxmatx34d;

typedef matxmatx43f;

typedef matxmatx43d;

typedef matxmatx44f;

typedef matxmatx44d;

typedef matxmatx66f;

typedef matxmatx66d;

含有4個元素的陣列,在opencv中被用來傳遞畫素值,rgb三個畫素值,如用不到第四個,則不需要寫出來。

templateclass scalar_ : public vec<_tp, 4>

typedef scalar_scalar;

​//定義

typedef rect_rect2i;

typedef rect_rect2f;

typedef rect_rect2d;

typedef rect2i rect;

//成員函式

//返回左上角座標

point_<_tp> tl() const;

//返回右下角座標

point_<_tp> br() const;

//返回矩形框的寬與高

size_<_tp> size() const;

//面積

_tp area() const;

//面積是否為0

bool empty() const;

//判斷點是否在矩形內

bool contains(const point_<_tp>& pt) const;

多用於指定mat中的連續的多行或列,range(a,b) 表示範圍從a到b的前閉後開的區間[a,b)。

//定義

class cv_exports range

;//應用舉例:

cv::mat img(10, 10, cv_8uc3,scalar(255));

//dst提取img的第1列到第4列,,mat(行,列)

cv::mat dst = img(range::all(), range(1,5));

cv::ptr與c++ 中智慧型指標share_ptr類似,與new delete相比,智慧型指標管理動態記憶體最大的優點就是可以自動釋放記憶體,避免記憶體洩漏。智慧型指標也是模板,因此建立乙個智慧型指標時,必須提供額外的資訊—指標指向的型別。與vector模板一樣,在尖括號內給出型別,如:

share_ptrstr1;

//opencv中定義物件時,通常使用cv::ptr。

ptrimporter;

ptrorb = orb::create();

OpenCV基本資料型別

point cpp view plain copy typedef point int point2i typedef point2i point typedef point float point2f typedef point double point2d point3 cpp view pla...

OpenCV學習筆記 基本資料型別

1.彩色影象通常有紅 綠 藍三個構成成分,但opencv以逆序,即藍 綠 紅來儲存著三個分量,還可以使用第四個透明度 alpha 通道。2.使用img.channels 獲取一幅img影象的通道數。3.使用img.depth 獲取衣服img影象深度。4.使用函式convertto講義中影象深度轉換為...

基本資料型別

列舉 定義列舉型別 enum season 定義兩個列舉變數 enum season mylove yourlove 為兩個列舉變數賦值 yourlove fall mylove winter 把列舉值當成無符號整數執行輸出 nslog fall 的值 u fall 3 nslog winter 的...