图形的绘制

这一次,通过使用rectange、circle、ellipse函数,学习的OPENCV的数据结构。图形是乱画的。记录一下:

#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\opencv.hpp>


#include "opencv2/imgproc/imgproc.hpp"


using namespace cv;
//define后面不要加;
#define WINDOW_WIDTH 300


//椭圆
void DrawEllipse(Mat img, double angle)
{
	//线宽
	int thickness = 2;
	//线型
	int lineType = 8;
	//ellipse函数 引用头文件 "opencv2/imgproc/imgproc.hpp"、#include<opencv2\opencv.hpp>
	ellipse(
		img,
		Point(150, 150),
		Size(100, 50),
		angle,
		0,
		360,
		Scalar(255, 129, 0),
		thickness,
		lineType
		);
}


//圆形
void DrawFilledCircle(Mat img, Point center)
{
	int thickness = 2;
	//线型
	int lineType = 8;
	//circle函数 引用头文件 "opencv2/imgproc/imgproc.hpp"、#include<opencv2\opencv.hpp>
	circle(
		img,
		center,
		120,
		Scalar(0,0,255),
		thickness,
		lineType
		);
}


void DrawRectangle(Mat img)
{
	
	//线型
	int lineType = 8;
	//Rectangle 引用头文件 "opencv2/imgproc/imgproc.hpp"、#include<opencv2\opencv.hpp>
	rectangle(
		img,
		//这里两个Point可以直接用rect表示 
		//复习一下Rect这是个矩阵图形的矩阵类 包含起点的坐标和宽度,长度
		//经过学习,图像的坐标原点在左上角
		Point(WINDOW_WIDTH / 3, WINDOW_WIDTH / 3),
		Point(2 * WINDOW_WIDTH / 3, 2 * WINDOW_WIDTH / 3),
		Scalar(0, 255, 255),
		//线宽设置为-1时为颜色填充;
		-1,
		lineType
		);
}




int main()
{
	Mat img(300, 300, CV_8UC3, Scalar::all(255));
	namedWindow("dddd", WINDOW_NORMAL);
	//画椭圆和圆和矩形
	DrawEllipse(img, 0);
	DrawFilledCircle(img, Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2));
	DrawRectangle(img);


	imshow("dddd",img);
	waitKey();
	destroyAllWindows();
}

#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\opencv.hpp>


#include "opencv2/imgproc/imgproc.hpp"


using namespace cv;
//define后面不要加;
#define WINDOW_WIDTH 300


//椭圆
void DrawEllipse(Mat img, double angle)
{
	//线宽
	int thickness = 2;
	//线型
	int lineType = 8;
	//ellipse函数 引用头文件 "opencv2/imgproc/imgproc.hpp"、#include<opencv2\opencv.hpp>
	ellipse(
		img,
		Point(150, 150),
		Size(100, 50),
		angle,
		0,
		360,
		Scalar(255, 129, 0),
		thickness,
		lineType
		);
}


//圆形
void DrawFilledCircle(Mat img, Point center)
{
	int thickness = 2;
	//线型
	int lineType = 8;
	//circle函数 引用头文件 "opencv2/imgproc/imgproc.hpp"、#include<opencv2\opencv.hpp>
	circle(
		img,
		center,
		120,
		Scalar(0,0,255),
		thickness,
		lineType
		);
}


void DrawRectangle(Mat img)
{
	
	//线型
	int lineType = 8;
	//Rectangle 引用头文件 "opencv2/imgproc/imgproc.hpp"、#include<opencv2\opencv.hpp>
	rectangle(
		img,
		//这里两个Point可以直接用rect表示 
		//复习一下Rect这是个矩阵图形的矩阵类 包含起点的坐标和宽度,长度
		//经过学习,图像的坐标原点在左上角
		Point(WINDOW_WIDTH / 3, WINDOW_WIDTH / 3),
		Point(2 * WINDOW_WIDTH / 3, 2 * WINDOW_WIDTH / 3),
		Scalar(0, 255, 255),
		//线宽设置为-1时为颜色填充;
		-1,
		lineType
		);
}




int main()
{
	Mat img(300, 300, CV_8UC3, Scalar::all(255));
	namedWindow("dddd", WINDOW_NORMAL);
	//画椭圆和圆和矩形
	DrawEllipse(img, 0);
	DrawFilledCircle(img, Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2));
	DrawRectangle(img);


	imshow("dddd",img);
	waitKey();
	destroyAllWindows();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值