OpenCv 5 繪製形狀與文字

2021-08-18 19:38:16 字數 3002 閱讀 4580

1、畫線

line()

void cvline( cvarr* img, cvpoint pt1, cvpoint pt2, cvscalar color,int thickness=1, int line_type=8, int shift=0 );

第乙個引數img:要划的線所在的影象;

第二個引數pt1:直線起點

第二個引數pt2:直線終點

第三個引數color:直線的顏色 e.g:scalor(0,0,255)

第四個引數thickness=1:線條粗細

第五個引數線條型別。cv_aa - antialiased 線條。

第六個引數:座標點的小數點位數。

例:

point p1 = point(20,30);

point p2;

p2.x = 300;

p2.y = 300;

scalar color = scalar(0,255,255);

line(bgimage,p1,p2,color,1,line_aa);//line_aa為反鋸齒

2、畫橢圓

ellipse()

void cvcircle( cvarr* img, cvpoint center, int radius, cvscalar color,

int thickness=1, int line_type=8, int shift=0 );

(1)img影象。

(2)center圓心座標。

(3)radius 圓形的半徑。

(4)color線條的顏色。

(5)thickness如果是正數,表示組成圓的線條的粗細程度。否則,表示圓是否被填充。

(6)line_type線條的型別。見 cvline 的描述

(7)shift圓心座標點和半徑值的小數點位數。

scalar color = scalar(0,255,255);

ellipse(bgimage,point(bgimage.cols/2,bgimage.rows/2),size(bgimage.cols/4,bgimage.rows/8),90,0,360,color,2,line_8);

3、畫矩形

rectangle()

通過傳入矩形畫矩形:

void rectangle(mat& img, rect rec, const scalar& color, int thickness=1, int linetype=8, int shift=0 )

rect rect = rect(200,100,300,300);

scalar color = scalar(255,0,0);

rectangle(bgimage,rect,color,2,line_8);

4、畫圓

circle()

cvcircle(cvarr* img, cvpoint center, int radius, cvscalar color, int thickness=1, int linetype=8, int shift=0)

scalar color = scalar(0,255,255);

circle(bgimage,point(bgimage.rpws/2,bgimage.cols/2),150,color,1,line_aa);

5、畫填充

fillpoly()

#include 

#include

using

namespace cv;

using

namespace

std;

int main()

; int npt = ;

polylines(src, ppt, npt, 1, 1, scalar(0,0,0), 1, 8, 0);

imshow("test", src);

cv::mat mask_ann, dst;

src.copyto(mask_ann);

mask_ann.setto(cv::scalar::all(0));

fillpoly(mask_ann, ppt, npt, 1, scalar(255, 255, 255));

imshow("mask_ann", mask_ann);

src.copyto(dst, mask_ann);

imshow("dst", dst);

waitkey();

return

0;

}

6、繪製文字

void puttext(mat& img, const string& text, point org, int fontface, double fontscale, scalar color, int thickness=1, int linetype=8, bool bottomleftorigin=false )

img – 顯示文字所在影象.

text – 待顯示的文字.

org – 文字在影象中的左下角 座標.

font – 字型結構體.

fontface – 字型型別, 可選擇字型:

fontscale – 字型大小,該值和字型內建大小相乘得到字型大小

color – 文字顏色

thickness – 寫字的線的粗細

linetype – 線型.

bottomleftorigin – true, 影象資料原點在左下角. otherwise, 影象資料原點在左上角.

mat image2;  

for(int i = 0;i < 255;i += 2)

OpenCV5 繪製形狀與文字

point表示2d平面上的乙個點x,y point p1 point 100 200 point p2 p2.x 300 p2.y 500 兩種線產生的演算法不同 rng rng 123 括號中為種子,隨機數由種子通過一定的計算公式產生。種子不變每次種子運算所產生的隨機數不變,通常可將種子設定為當前...

OpenCV(繪製形狀與文字)

使用opencv2.4.9 vs2013 繪製形狀與文字 include include using namespace cv using namespace std mat bgimage const char drawdemo win draw shapes and text demo void...

opencv 繪製形狀和文字

以下程式可以在影象上寫文字,畫圓,畫矩形,畫線條,寫文字。還可以不斷畫線,非常美。include include includeusing namespace std using namespace cv mat bgimage const char drawdemo win draw shapes...