1. void ellipse(InputOutputArray img, Point center, Size axes, double angle, double startAngle, double endAngle,
const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);
ellipse函數將橢圓畫到圖像 lmg 上, 橢圓中心為點center,並且大小位於矩形 axes 內,橢圓旋轉角度為 angle, 擴展的弧度從 0 度到 360 度,
圖形顏色為 Scalar(x, y,z),線寬 (thickness)為 1,線型(lineType)為 8 (8 聯通線型)。
2. void circle(InputOutputArray img, Point center, int radius, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);
img :表示輸入的圖像
center: 圓心坐標
radius: 圓的半徑
color:Scalar類型,表示圓的顏色,例如藍色為Scalar(255,0,0)
thickness:線的寬度
lineType:線的類型,(默認為8聯通型)
1 #include<iostream> 2 #include<opencv2/opencv.hpp> 3 using namespace cv; 4 using namespace std; 5 6 #define WINDOW_NAME1 "繪制圖1" 7 #define WINDOW_NAME2 "繪制圖2" 8 #define WINDOW_WIDTH 600 //定義窗口大小 9 string image = "C:\\Users\\asus\\Pictures\\Saved Pictures\\123.jpg"; 10
11 void DrawEllipse(Mat img, double angle); 12 void DrawFi1ledCirc1e(Mat img, Point center); 13 int main() 14 { 15 Mat atomImage = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3); 16 Mat rookImage = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3); 17 //繪制橢圓 18 DrawEllipse(atomImage, 90); 19 DrawEllipse(atomImage, 0); 20 DrawEllipse(atomImage, 45); 21 DrawEllipse(atomImage, -45); 22 23 //繪制圓心 24 DrawFi1ledCirc1e(atomImage, Point(WINDOW_WIDTH / 2,WINDOW_WIDTH / 2)); 25 26 imshow(WINDOW_NAME1, atomImage); 27 waitKey(0); 28 return 0; 29 } 30 void DrawEllipse(Mat img, double angle) { 31 int thickness = 2; 32 int lineType = 8; 33 ellipse(img, Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2), 34 Size(WINDOW_WIDTH / 4, WINDOW_WIDTH / 16), angle, 0, 360, Scalar(255, 129, 0), 35 thickness, lineType); 36 } 37 void DrawFi1ledCirc1e(Mat img, Point center) { 38 int thickness = -1; 39 int lineType = 8; 40 circle(img, center, WINDOW_WIDTH / 32, Scalar(0, 0, 255), thickness, lineType); 41 }