opencv —— line、ellipse、rectangle、circle、fillPoly、putText 基本图形的绘制
绘制线段:line 函数
void line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0);
- img: 要绘制线段的图像。
- pt1: 线段的起点。
- pt2: 线段的终点。
- color: 线段的颜色,通过一个 Scalar 对象定义。
- thickness: 线条的宽度,默认值为 1。
- lineType: 线段的类型。可以取值 8,4,和 LINE_AA, 分别代表8邻接连接线,4 邻接连接线和反锯齿连接线。默认值为 8 邻接。为了获得更好地效果可以选用 LINE_AA(采用了高斯滤波)。
- shift: 坐标点小数点位数,默认值 0。
// 绘制直线
void DrawLine(Mat img, Point start, Point end){
int thickness = ;
int lineType = ;
line(img, start, end, Scalar(, , ), thickness, lineType);
}
绘制椭圆:ellipse 函数
void ellipse(Mat& img, Point center, Size axes,double angle, double startAngle, double endAngle, const Scalar& color, int thickness=1,int lineType=8, int shift=0);
- img: 要绘制椭圆的图像。
- center: 椭圆中心点坐标。
- axes: 椭圆位于该 Size 决定的矩形内。(即定义长轴和短轴)。
- angle: 椭圆的角度。
- startAngle: 椭圆开始绘制时角度,顺时针旋转。
- endAngle: 椭圆绘制结束时角度。(若绘制一个完整的椭圆,则startAngle=0, endAngle = 360)。
- color: 椭圆的颜色。
- thickness: 绘制椭圆线粗。负数表示全部填充。
- lineType、shift:同上。
void DrawEllipse(Mat img,Point center,Size rect_size, double angle) {
int thickness = ;
int lineType = ;
ellipse(img, center, rect_size, angle, , , Scalar(, , ), thickness, lineType);
imshow("img", img);
}
绘制矩形:rectangle 函数
void rectangle(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0);
- pt1: 矩形的左上角坐标。
- pt2: 矩阵的右下角坐标。
- 其余同上。
//绘制矩形
rectangle(src, Point(, 0),Point(width, width), Scalar(, , ), -, );
绘制圆:circle 函数
void circle(Mat& img, Point center, int radius, const Scalar& color, int thickness=1, int lineType=8, int shift=0);
- center: 圆心坐标。
- radius: 半径。
- 其余同上。
//绘制实心圆
void DrawFilledCircle(Mat img, Point center, int radius){
int thickness = -; //线粗
int lineType = ;
circle(img, center, radius, Scalar(, , ),thickness, lineType);
}
填充多边形:fillPoly 函数
void fillPoly(Mat& img, const Point** pts,const int* npts, int ncontours, const Scalar& color, int lineType=8, int shift=0, Point offset=Point() );
- pts: 多边形定点集。
- npts: 多边形的顶点数目。
- ncontours: 要绘制多边形的数量。
- offset: 所有点轮廓的可选偏移。
- 其余同上。
//实现凹多边形绘制
void DrawPolygon(Mat img){
int lineType = ; //创建一些点
Point rootPoints[][];
rootPoints[][] = Point(wwidth / , * wwidth / );
rootPoints[][] = Point( * wwidth / , * wwidth / );
rootPoints[][] = Point( * wwidth / , * wwidth / );
rootPoints[][] = Point( * wwidth / , * wwidth / );
rootPoints[][] = Point( * wwidth / , * wwidth / );
rootPoints[][] = Point( * wwidth / , * wwidth / );
rootPoints[][] = Point( * wwidth / , wwidth / );
rootPoints[][] = Point( * wwidth / , wwidth / );
rootPoints[][] = Point( * wwidth / , wwidth / );
rootPoints[][] = Point( * wwidth / , wwidth / );
rootPoints[][] = Point( * wwidth / , wwidth / );
rootPoints[][] = Point( * wwidth / , wwidth / );
rootPoints[][] = Point( * wwidth / , wwidth / );
rootPoints[][] = Point( * wwidth / , wwidth / );
rootPoints[][] = Point( * wwidth / , wwidth / );
rootPoints[][] = Point(wwidth / , wwidth / );
rootPoints[][] = Point(wwidth / , * wwidth / );
rootPoints[][] = Point( * wwidth / , * wwidth / );
rootPoints[][] = Point( * wwidth / , * wwidth / );
rootPoints[][] = Point(wwidth / , * wwidth / );
const Point* all_pts[] = { rootPoints[] };
int pt_num[] = { };
fillPoly(img, all_pts, pt_num, , Scalar(, , ), lineType);
}
显示文字:putText 函数
void putText(Mat& img, const string& text, Point org, int fontFace, double fontScale, Scalar color, int thickness=1, int lineType=8, bool bottomLeftOrigin=false )
- img:显示文字所在图像.
- text:待显示的文字.
- org:文字在图像中的左下角坐标.
- fontFace:字体类型,可选择字体:
FONT_HERSHEY_SIMPLEX,FONT_HERSHEY_PLAIN,FONT_HERSHEY_DUPLEX
FONT_HERSHEY_COMPLEX,FONT_HERSHEY_TRIPLEX,FONT_HERSHEY_COMPLEX_SMALL,
FONT_HERSHEY_SCRIPT_SIMPLEX,FONT_HERSHEY_SCRIPT_COMPLEX
以上所有类型都可以配合FONT_HERSHEY_ITALIC使用,产生斜体效果。
- fontScale:字体大小,该值和字体内置大小相乘得到字体大小
- color:文本颜色
- thickness:写字的线的粗细
- lineType:线型.
- bottomLeftOrigin:false, 图像数据原点在左下角。否则, 图像数据原点在左上角.
putText(Image, "OpenCv", Point(width / , width / ), FONT_HERSHEY_PLAIN, , Scalar(, , ), , , false);
借鉴博客:https://www.cnblogs.com/ishero/p/11136315.html
opencv —— line、ellipse、rectangle、circle、fillPoly、putText 基本图形的绘制的更多相关文章
- opencv-6-图像绘制与opencv Line 函数剖析
opencv-6-图像绘制与opencv Line 函数剖析 opencvc++qt 开始之前 越到后面, 写的越慢, 之前还抽空去看了下 学堂在线那篇文章提供的方法, 博客第一个人评论的我, 想想还 ...
- opencv中画圆circle函数和椭圆ellipse函数
1. void ellipse(InputOutputArray img, Point center, Size axes, double angle, double startAngle, ...
- Python下opencv使用笔记(二)(简单几何图像绘制)
简单几何图像一般包含点.直线.矩阵.圆.椭圆.多边形等等.首先认识一下opencv对像素点的定义. 图像的一个像素点有1或者3个值.对灰度图像有一个灰度值,对彩色图像有3个值组成一个像素值.他们表现出 ...
- opencv 6 图像轮廓与图像分割修复 1 查找并绘制轮廓 寻找物体的凸包
查找并绘制轮廓 寻找轮廓(findContours)函数 绘制轮廓(drawContours()函数) 基础实例程序:轮廓查找 #include <opencv2/opencv.hpp> ...
- 【opencv学习笔记四】opencv3.4.0图形用户接口highgui函数解析
在笔记二中我们已经知道了,在highgui文件夹下的正是opencv图形用户接口功能结构,我们这篇博客所说的便是D:\Program Files\opencv340\opencv\build\incl ...
- JAVAFX-4 开发应用
JavaFx 形状 Node类是所有JavaFX场景图形节点的基本基类.它提供了转换和应用效果到任何节点的能力. javafx.scene.shape.Shape类是Node类的子类.所有较旧的Jav ...
- 说说设计模式~组合模式(Composite)
返回目录 何时能用到它? 组合模式又叫部分-整体模式,在树型结构中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦.对于今天这个 ...
- 【opencv基础】opencv和dlib库中rectangle类型之间的转换
前言 最近使用dlib库的同时也会用到opencv,特别是由于对dlib库的画图函数不熟悉,都想着转换到opencv进行show.本文介绍一下两种开源库中rectangle类型之间的转换. 类型说明 ...
- opencv 61篇
(一)--安装配置.第一个程序 标签: imagebuildincludeinputpathcmd 2011-10-21 16:16 41132人阅读 评论(50) 收藏 举报 分类: OpenCV ...
随机推荐
- 快乐编程大本营【java语言训练班】第5课: java的数组编程
快乐编程大本营[java语言训练班]第5课: java的数组编程 第1节. 声明数组变量 第2节. 创建数组对象 第3节. 访问数组元素 第4节. 修改数组元素 第5节. 多维数组 学习地址如下:ht ...
- windows下使用pycharm配置python的virtualenv环境
环境:win10 python2.7.10(64) 在path中配置python环境 注意:我这边的环境是py2和py3共存的,但是我这边默认使用的是py2. 在virtualenv环境中安装指定的p ...
- mycat - 数据库中间件 学习记录4
mycat的配置 cacheservice.properties:路由缓存相关配置文件 index_to_charset.properties:字符集映射关系 rule.xml:分片规则 schema ...
- CentOS使用465端口发送邮件
1)邮件发送示例 方法1:echo "This is a test mail" | mail -s '邮件测试' 452666750@qq.com 方法2:mail -s '服务运 ...
- golang中使用Shutdown特性对http服务进行优雅退出使用总结
golang 程序启动一个 http 服务时,若服务被意外终止或中断,会让现有请求连接突然中断,未处理完成的任务也会出现不可预知的错误,这样即会造成服务硬终止:为了解决硬终止问题我们希望服务中断或退出 ...
- 并发编程之Master-Worker模式
我们知道,单个线程计算是串行的,只有等上一个任务结束之后,才能执行下一个任务,所以执行效率是比较低的. 那么,如果用多线程执行任务,就可以在单位时间内执行更多的任务,而Master-Worker就是多 ...
- php基础编程-php连接mysql数据库-mysqli的简单使用
很多php小白在学习完php基础后,或多或少要接触到数据库的使用.而mysql数据库是你最好的选择,本文就mysql来为大家介绍php如何连接到数据库. PHP MySQLi = PHP MySQL ...
- phpstorm设置debug调试
先去下载xdebug.dll文件.将下面自己的phpinfo的文字信息复制到https://xdebug.org/wizard.php中,下载它提供的xdebug.dll的版本 下载完成后将php_x ...
- K8S ? K3S !
K8S ? K3S ! K3S 踩坑开始 歪比歪比(奇怪的服务器) 服务器选择我熟悉的 Centos K3S内置 Containerd 但是!作为一个服务器使用自然是要用常见的一点的容器 Docker ...
- Windows AD日志分析平台WatchAD安装教程
目录 WatchAD介绍 安装环境 WatchAD安装(日志分析端服务) 基础环境配置 安装WatchAD 运行WatchAD WatchAD-web安装(Web监控端服务) 下载WatchAD-We ...