opencv學習筆記-5,繪製線條、矩形、圓、橢圓,添加文字

一、代碼

#include<opencv2/opencv.hpp>

#include<highgui.h>
#include<iostream>



using  namespace  cv;
Mat img;
void Mylines();
void Myrectangle();
void Mycircle();
void Myellipse();


int main(int argc,char**argv)
{
 img=imread("1.jpg");
Mylines();
Myellipse();

Myrectangle();

Mycircle();

putText(img,"hello opencv",Point(300,300),CV_FONT_HERSHEY_COMPLEX,1.0,Scalar(25,255,255),2,8);            文字


namedWindow("my picture",CV_WINDOW_NORMAL);
imshow("my picture",img);
waitKey(0);
}


void Mylines(){                                                                 畫線
Point p1=Point(20,30);
Point p2;
p2.x=20;
p2.y=200;
Scalar color=Scalar(0,0,255);
line(img,p1,p2,color,2,8);
}


void Myrectangle(){                                                          矩形
Rect rect=Rect(50,50,500,400);
Scalar color=Scalar(255,0,0);
rectangle(img,rect,color,2,8);
}


void Mycircle(){                                                                  圓
//Point center=Point(img.cols/2,img.rows/2);
Scalar color=Scalar(0,255,255);
circle(img,Point(img.cols/2,img.rows/2),200,color,2,8);
}


void Myellipse(){                                                             橢圓
Scalar color=Scalar(0,255,0);
ellipse(img,Point(img.cols/2,img.rows/2),Size(img.cols/4,img.rows/8),180,0,360,color,2,8);

}


二、運行結果



三、API介紹

1、cv::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:線條粗細

第五個參數line_type=8, 

(說明一點:這個linetype參數並不是指線型是實線、虛線還是點畫線,這個參數實際用途是改變線的產生算法。)


2、cv::rectangle

 void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color,int thickness=1, int line_type=8, int shift=0 ;CvSize min_size=cvSize(0,0);CvSize max=cvSize(0,0));

img -- 圖像.
pt1 -- 矩形的一個頂點。
pt2 -- 矩形對角線上的另一個頂點
color -- 線條顏色 (RGB) 或亮度(灰度圖像 )(grayscale image)。
thickness -- 組成矩形的線條的粗細程度。取負值時(如 CV_FILLED)函數繪製填充了色彩的矩形。
line_type -- 線條的類型。見cvLine的描述
shift -- 座標點的小數點位數。
CvSize cvSize(int height,int width)
3、cv::circle

cvCircle(CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int lineType=8, int shift=0)

img爲圖像指針,單通道多通道都行,不需要特殊要求

center爲畫圓的圓心座標

radius爲圓的半徑

color爲設定圓的顏色,比如用CV_RGB(255, 0,0)設置爲紅色

thickness爲設置圓線條的粗細,值越大則線條越粗,爲負數則是填充效果

 4、cv::ellipse

void cvEllipse( CvArr* img, CvPoint center, CvSize axes, double angle,double start_angle, double end_angle, CvScalar color,int thickness=1, int line_type=8, int shift=0 );

img      圖像。center  橢圓圓心座標。axes     軸的長度。angle    偏轉的角度。start_angle     圓弧起始角的角度。.end_angle      圓弧終結角的角度。color             線條的顏色。thickness     線條的粗細程度。line_type      線條的類型,見CVLINE的描述。shift               圓心座標點和數軸的精度。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章