vs2015+OpenCV绘制椭圆和圆

也是学习的一天!!!!

01.实现vs2015 opencv绘制椭圆和圆

记录学习的过程。

最终的结果展示如下:
在这里插入图片描述
具体步骤:
(1)打开VS——文件——新建——项目——Visual C++——空项目——修改名称和位置——点击确定
在这里插入图片描述
(2)修改这两个地方,我刚开始只修改了x64,在debug下编写时一直报错
在这里插入图片描述片描
(3)右键点击创建好的项目——选择最下方的属性
1)先点击VC++目录——包含目录——点击右侧的路径,会出现一个下拉的小箭头,如图1所示。——点击下拉按钮——点击编辑——按照图2方式将你自己的OPENCV下的include文件导入进来(我这里的包含目录和库目录分别是图3和图4所示)。
在这里插入图片描述

图1

在这里插入图片描述图述

图2

在这里插入图片描述

图3

在这里插入图片描述

图4

2)点击连接器——点击输入——附加依赖项——加入opencv_world460.lib,然后点击确定就可以添加文件编写代码了
在这里插入图片描述
修改了的位置分别为下图中的(1)和(2)两处。
注意这个附加连接器是对应的debug/release模式的
opencv_world460d.lib 对应 <debug模式>
opencv_world460.lib 对应 <release模式>
在这里插入图片描述
右键点击源文件——>添加——>新建项
在这里插入图片描述
点击Visual C++——>C++文件——>修改名称和位置——添加
在这里插入图片描述
一切就绪,可以编写代码啦~~~
在这里插入图片描述
绘制圆和椭圆的代码如下,具体每句代码大概意思也注释了,当然也可以使得代码更简洁,结合自身需求可以优化或者简化。

具体的代码如下:

#include <iostream>   //输入流
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>   //绘制形状

#define W 400;

using namespace std;   //命名空间,便于简写
using namespace cv;   //命名空间

//定义一个绘制椭圆的函数
void MyEllipse(Mat img, double angle)
{
	int nWidth = img.cols;   //定义宽度为图像的列宽
	int nHeight = img.rows;    //定义宽度为图像的行高
	int thickness = 2;    //厚度,椭圆边界线的粗细  -1将通过指定的颜色填充椭圆形状
	int LineType = 4;   //线的类型   共有三种  LINE_4、LINE_8、LINE_AA
	ellipse(img, Point(nWidth / 2, nHeight / 2),  Size(nWidth / 4, nWidth / 16), angle,  0,  360,   Scalar(255, 0, 0),  thickness, LineType);
/*
椭圆参数说明:img图像:要在其上绘制椭圆的图像
            Point(nWidth / 2, nHeight / 2)  椭圆中心的坐标
			Size(nWidth / 4, nWidth / 16)  椭圆的长轴长和短轴长  长轴是整个图的四分之一,短轴是整个图像的十六分之一
			angle:角度
			0:椭圆弧的起始角度
			360:椭圆弧的终止角度
			Scalar:椭圆边界线的颜色 BGR  蓝色(255,0,0)
			thickness ://厚度,椭圆边界线的粗细  -1将通过指定的颜色填充椭圆形状
			LineType :线的类型   共有三种  LINE_4、LINE_8、LINE_AA
*/
}
//定义一个绘制圆的函数
void MyCircle(Mat img, Point center)
{
	int nWidth = img.cols;
	int nHeight = img.rows;
	int thickness = -1;    //封闭曲线,则填充图形
	int LineType = 4;  
	circle(img, center, nWidth /32, Scalar(255,0,0), thickness, LineType);   //绘制圆
	/*圆的参数说明:img:要在img上绘制圆的图像
	center:圆的中心点
	nWidth /32:圆的半径
	Scalar:椭圆边界线的颜色 BGR  蓝色(255,0,0)
	thickness ://厚度,椭圆边界线的粗细  -1将通过指定的颜色填充椭圆形状
	LineType :线的类型   共有三种  LINE_4、LINE_8、LINE_AA
	*/
}

int main()
{
	char opencvPC_window[] = "MyOpencv1";    //创建窗口的标题为MyOpencv
	Mat  opencvPC_image = Mat::zeros(400, 400, CV_8UC3);  //创建图片
	//绘制四个椭圆,角度分别为0, 45, 90,-45
	MyEllipse(opencvPC_image, 0);    
	MyEllipse(opencvPC_image, 30);
	MyEllipse(opencvPC_image, 60);
	MyEllipse(opencvPC_image, 90);
	MyEllipse(opencvPC_image, -30);
	MyEllipse(opencvPC_image, -60);
	int nWidth = opencvPC_image.cols;  //定义宽度是图片的宽度
	//绘制圆
	MyCircle(opencvPC_image, Point(nWidth / 2, nWidth / 2));   //绘制圆 圆心为图片的中心位置,实心圆

	imshow(opencvPC_window, opencvPC_image);   //显示img的标题以及图片
	imwrite("C:\\Users\\Administrator\\Pictures\\MyOpencv1.jpg", opencvPC_image);   //将图片放置在某个图片文件夹下(我的是直接放在了桌面的图片文件夹下的)。
	waitKey(0);
	return 0;
}

总结

一步一步慢慢实现,有问题随时查找原因,并总结,要学会找出现问题的原因,注意配置环境变量,所有的实现都是在VS2017、opencv等的环境配置好,且没有出现错误的情况下执行的。
目前还是菜鸟,慢慢改进吧!
网上有很多可以参考的,大概罗列一两个,有需要可以搜索:
参考1(https://blog.csdn.net/weixin_44347020/article/details/125158544)
参考2(https://zhuanlan.zhihu.com/p/475286558)
参考3(https://blog.csdn.net/youcans/article/details/125459696)
看了无数篇别人的,第一次将自己学到的记录下来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卟言de秘密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值