opencv學習(4)部分基本資料結構的介紹

2021-07-15 08:05:20 字數 3144 閱讀 3898

先貼一段簡單的**;

#include "opencv2/core/core.hpp"

#include "opencv2/highgui/highgui.hpp"

#include

using

namespace

std;

using

namespace cv;

int main(int,char**)

生成結果:

1、定義和輸出二維點:

point2f p(2,3);

2、定義和輸出三維點

point3f p(2,3,4);

3、定義和輸出基於mat的std::vector

vector v;

v.push_back(3);

v.push_back(5);

4、定義和輸出std::vector點

以存放二維點point2f為例:

vector point(20);

for (size_t i=0;i< points.size();i++)

point[i]=point2f((float) (i*5),(float)(i%7));

cout << 「【二維點向量】points = 」 << points<

5、點的表示point類

typedef point_< int> point2i ;

typedef point2i point ;

typedef point_< float> point2f ;

point_< int> 、 point2i 、point相互等價;point_< float>、point2f相互等價;

6、顏色的表示scalar類

scalar( )表示具有4個元素的陣列,在opencv被大量用於傳遞畫素值,如rgb的畫素值;

scalar(a,b,c) 紅色分量代表c,綠色部分代表b,藍色部分代表a;

7、矩形的表示:rect類

rect類的成員變數有 x、y、width、height,分別表示左上角點的座標和矩形的寬與高。

常用的成員函式有:size( )返回值為 size;area( )返回矩形的面積;contains(point)判斷點是否在矩形內;inside(rect)函式判斷矩形是否在該矩形內;tl( )返回左上角點座標;br( )返回右下角點座標。

8、顏色空間轉換:cvtcolor( )函式

cvtcolor()函式時顏色空間轉換函式,能夠完成rgb、hsv、hsi等顏色空間的轉換;也可以轉換為灰度圖gray;

eg:cvtcolor(srcimage,dstimage,color_gray2bgr);

9、基本圖形的繪製

1)用於繪製直線的line函式;

2)用於繪製橢圓形ellpse函式;

3)用於繪製矩形rectangle函式;

4)用於繪製圓的circle函式;

5)用於繪製填充的多邊形的fillpoly函式;

再次貼一段淺墨大神的原創**;

#include 

#include

using

namespace cv;

//此程式對於opencv3版需要額外包含標頭檔案:

#include

#define window_name1 "【繪製圖1】" //為視窗標題定義的巨集

#define window_name2 "【繪製圖2】" //為視窗標題定義的巨集

#define window_width 600 //定義視窗大小的巨集

//--------------------------------【全域性函式宣告部分】-------------------------------------

void drawellipse( mat img, double angle );//繪製橢圓

void drawfilledcircle( mat img, point center );//繪製圓

void drawpolygon( mat img );//繪製多邊形

void drawline( mat img, point start, point end );//繪製線段

//---------------------------------------【main( )函式】--------------------------------------

int main( void )

//-------------------------------【drawellipse( )函式】--------------------------------

void drawellipse( mat img, double angle )

//-----------------------------------【drawfilledcircle( )函式】---------------------------

void drawfilledcircle( mat img, point center )

void drawpolygon( mat img )

; int npt = ;

fillpoly( img,

ppt,

npt,

1,scalar( 255, 255, 255 ),

linetype );

}void drawline( mat img, point start, point end )

opencv九 opencv基本資料類

1.固定向量類cv vec 最直接的基本資料型別是模板類cv vec 這是乙個用於原語的容器類,我們將其稱為固定向量類。為什麼不直接使用stl類呢?關鍵的區別在於,固定向量類是為在編譯時已知維數的小向量設計的。這就允許使用特別高效的 來處理小的常見操作。在實踐中,small 的意思是,如果您有多個元...

OpenCV學習筆記 基本資料型別

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

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