Opencv C++ 繪製橢圓/圓形

Opencv C++ 繪製橢圓/圓形

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>

using namespace cv;
using namespace std;

//繪製橢圓;
void DrawEllipse(Mat img, double angle, int nThickness)
{
	int nWidth = img.cols;
	int nHeight = img.rows;
	int lineType = 8;

	if (nThickness != -1)
		ellipse(img, Point(nWidth / 2, nHeight / 2), Size(nWidth / 4, nWidth / 16), angle, 0, 360, Scalar(255, 129, 0), nThickness, lineType);
	else
		ellipse(img, Point(nWidth / 8, nHeight / 8), Size(nWidth / 16, nWidth / 32), angle, 0, 360, Scalar(255, 129, 0), nThickness, lineType);
}

//繪製圓形
void DrawCircle(Mat img, int radius, int nThickness)
{
	int nWidth = img.cols;
	int nHeight = img.rows;
	int lineType = 8;

	circle(img, Point(nWidth / 2, nHeight / 2), radius, Scalar(255, 129, 0), nThickness, lineType);
}

int main()
{
	//1.創建圖片
	Mat imageDraw = Mat::zeros(600, 600, CV_8UC3);

	//2.繪製橢圓形
	for (int i = -90; i < 90; )
	{
		DrawEllipse(imageDraw, i, 2);
		i += 30;
	}
	
	DrawEllipse(imageDraw, 90, -1);
	DrawEllipse(imageDraw, 0, -1);

	//3.繪製圓形
	int nWidth = imageDraw.cols;
	DrawCircle(imageDraw, nWidth/32, -1);
	DrawCircle(imageDraw, nWidth /4 + 5, 1);

	//4.顯示圖片
	imshow("imageDraw", imageDraw);
	waitKey(0);
	destroyAllWindows();
}

繪製結果
在這裏插入圖片描述

繪製橢圓


void cv::ellipse	(	
InputOutputArray 	img,  //所繪製的圖片
Point 	center,			  //橢圓中心點
Size 	axes,			  //橢圓長短軸
double 	angle,			  //旋轉角度(角度)
double 	startAngle,		  //開始繪製角度
double 	endAngle,		  //結束繪製角度
const Scalar & 	color,    //繪製所使用顏色
int 	thickness = 1,	  //線寬  -1 全填充 
int 	lineType = LINE_8, // 線類型 8領域繪製
int 	shift = 0 		   //小數位數
)	

在這裏插入圖片描述
在這裏插入圖片描述
//繪製圓形

void cv::circle	(	
InputOutputArray 	img,	//所繪製的圖片
Point 	center,				//圓形中心點
int 	radius,             //圓形半徑
const Scalar & 	color,		//圓形顏色
int 	thickness = 1,		//線寬  -1 全填充 
int 	lineType = LINE_8,  //線類型 8領域繪製
int 	shift = 0            //小數位數
)	

在這裏插入圖片描述

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