C++ opencv實現幾何圖形繪制

在學習過程中,我們可以在圖像中繪制一些幾何圖形,比如矩形,橢圓,線段,填充多邊形等,這些函數都挺容易理解,下面簡單看一下。

1.矩形 rectangle()

通過對角線上的兩個頂點繪制矩形

void rectangle(InputOutputArray img, Rect rec,
		const Scalar& color, int thickness = 1,
		int lineType = LINE_8, int shift = 0);

img 名稱
rec pt1矩形的頂點 pt2與pt1相對的矩形頂點
color 顏色  也可以用像素存放類Scalar
thickness 寬度 如果是-1,就代表對改矩形進行填充
lineType  類型
shift 移位點坐標中的小數位數。

代碼:

int main()
{
	Mat img = Mat::ones(240, 240, CV_8UC3);
	rectangle(img, Rect(20, 20, 100, 100), Scalar(0, 0, 255),7);
	imshow("www", img);
	waitKey(0);
}

效果圖:

2. 圓 circle()

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 圓環顏色
thickness 正數,則表示圓輪廓的厚度 負數 對該圓填充顏色
lineType  類型
shift  移位中心坐標和半徑值的小數位數。

代碼:

int main()
{
	Mat img1=Mat::zeros(100, 100, CV_8UC3);
	circle(img1, Point(40, 40), 20, Scalar(0, 0, 255),-1);//-1 填充
	imshow("www", img1);
	waitKey(0);
}

效果圖:

3.橢圓 elliple()

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);

img 名稱
center 橢圓的中心。
axes 軸 橢圓主軸大小的一半。
angle	橢圓旋轉角度。
startAngle	橢圓弧的起始角,以度表示。
endAngle	橢圓弧的結束角,以度數表示。
color	橢圓顏色。
thickness 正數 橢圓圓弧輪廓的厚度  負數 對橢圓進行填充。
linetype 橢圓邊界類型。 
shift 中心坐標和坐標軸值的小數位數。

代碼:

int main()
{
	Mat img1 = Mat::zeros(300, 300, CV_8UC3);
	ellipse(img1, Point(100, 100), Size(40, 25), 0, 0, 360, Scalar(0, 0, 255),5);
	imshow("111", img1);
	waitKey(0);
}

效果圖:

以上就是C++ opencv實現幾何圖形繪制的詳細內容,更多關於C++ opencv繪制幾何圖形的資料請關註LevelAH其它相關文章!

推薦閱讀: