OpenCV4.5.5学习笔记(七):基本图形的绘制(直线line,椭圆ellipse,矩形rectangle,园circle,多边形fillPoly)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

笔者本科时候有幸接触了OpenCV3.2.0版本的学习,后因考研压力不得不暂时停下学习的脚步,现在考研任务结束了,未来的导师也是从事的该方向,笔者又开始了新一轮的学习。回来发现OpenCV已经出到了4.5.5版本,遂重新下载新版本并决定记录这一学习历程。由于笔者水平有限,可能有错误之处还请诸位大佬多多包涵并烦请指出,让我们一起学习,共同进步。
首先需要说明的是:我是按着毛星云前辈编写的OpenCV3编程入门进行学习的,我会尽力把星云前辈的程序转成符合OpenCV4.5.5版本的。毛星云前辈于2021年12月11日不幸过世,他是我非常敬仰的一位业内大佬,我也是看他的书才开始接触OpenCV。


一、直线line

线构造函数。
在OpenCV官方文档中是这么写的:
void cv::line (
InputOutputArray img,
Point pt1,
Point pt2,
const Scalar & color,
int thickness = 1,
int lineType = LINE_8,
int shift = 0
)
第一个参数是目标图片,
第二个参数是线段的第一个点,
第三个参数是线段的第二个点,
第四个参数是线条颜色,
第五个参数是线的粗细,
第六个参数是线的类型,
第七个参数是点坐标中的小数位数


二、椭圆ellipse

简单或粗椭圆弧或填充椭圆扇区构造函数。
在OpenCV官方文档中是这么写的:
void cv::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
)
**
第一个参数是目标图片,
第二个参数是椭圆的中心,
第三个参数是椭圆主轴大小的一半,
第四个参数是以度为单位的椭圆旋转角度,
第五个参数是椭圆弧的起始角度,以度为单位,
第六个参数是椭圆弧的结束角度,以度为单位,
第七个参数是椭圆颜色,
第八个参数是椭圆弧轮廓的厚度,
第九个参数是椭圆边界的类型,
第十个参数是中心坐标和轴值中的小数位数**


三、矩形rectangle

绘制一个简单的、粗的或填充的直角矩形。
在OpenCV官方文档中是这么写的:
void cv::rectangle (
InputOutputArray img,
Point pt1,
Point pt2,
const Scalar & color,
int thickness = 1,
int lineType = LINE_8,
int shift = 0
)
第一个参数是目标图片,
第二个参数是矩形的顶点,
第三个参数是与第二个参数相对的矩形的顶点,
第四个参数是矩形颜色或亮度(灰度图像),
第五个参数是构成矩形的线条的粗细。负值,如FILLED,意味着该函数必须绘制一个填充的矩形,
第六个参数是线的类型,
第七个参数是点坐标中的小数位数


四、圆circle

圆形构造函数。
在OpenCV官方文档中是这么写的:
void cv::circle (
InputOutputArray img,
Point center,
int radius,
const Scalar & color,
int thickness = 1,
int lineType = LINE_8,
int shift = 0
)
第一个参数是目标图片,
第二个参数是圆的中心,
第三个参数是圆的半径,
第四个参数是圆的颜色,
第五个参数是圆形轮廓的粗细(如果为正)。负值,如FILLED,表示要绘制一个实心圆,
第六个参数是圆边界的类型,
第七个参数是中心坐标和半径值中的小数位数


五、多边形fillPoly

填充由一个或多个多边形包围的区域。
在OpenCV官方文档中是这么写的:
void cv::fillPoly (
InputOutputArray img,
InputArrayOfArrays pts,
const Scalar & color,
int lineType = LINE_8,
int shift = 0,
Point offset = Point()
)
第一个参数是目标图片,
第二个参数是多边形数组,其中每个多边形都表示为点数组,
第三个参数是多边形颜色,
第四个参数是多边形边界的类型,
第五个参数是顶点坐标中的小数位数,
第六个参数是轮廓所有点的可选偏移


总结

今天主要是学习了五个基本图形的具体参数及其绘制方法。通过这些基础函数我们就能绘制出我们想象中的图形了。
按着星云前辈给出的例程,也是成功绘制出图像了。
在这里插入图片描述
自己又试着画了一个五角星:
在这里插入图片描述

	// ----------------------------<3>绘制五角星-----------------------------
	// 【3】绘制一些线段
	DrawLine(starImage, Point(400, 472.65), Point(338.2, 282.44));
	DrawLine(starImage, Point(338.2, 282.44), Point(500, 400));
	DrawLine(starImage, Point(500, 400), Point(300, 400));
	DrawLine(starImage, Point(300,400), Point(461.8, 282.44));
	DrawLine(starImage, Point(461.8, 282.44), Point(400, 472.65));

猜你喜欢

转载自blog.csdn.net/qq_43264167/article/details/124272422