一、代碼
#include<opencv2/opencv.hpp>
#include<highgui.h>#include<iostream>
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));
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 圓心座標點和數軸的精度。