当前位置: 首页 > news >正文

OpenCV入门(十三):常用图形绘制

绘制直线

@param img 输入图像
@param pt1 第一个点
@param pt2 第二个点
@param color 绘制颜色
@param thickness 线条粗细,负数则填充区域
@param lineType 画线算法,有四连通、8连通、反走样法
@param shift 坐标小数点精度

void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color,
                     int thickness = 1, int lineType = LINE_8, int shift = 0);
                     

绘制带箭头直线

@param tipLength 箭头线长度占线段长度的百分比

void arrowedLine(InputOutputArray img, Point pt1, Point pt2, const Scalar& color,
                     int thickness=1, int line_type=8, int shift=0, double tipLength=0.1);
                     

绘制矩形

@param rec 定义矩形左上角点,及其宽高

void rectangle(InputOutputArray img, Rect rec,
                          const Scalar& color, int thickness = 1,
                          int lineType = LINE_8, int shift = 0);

绘制圆形

void circle(InputOutputArray img, Point center, int radius,
                       const Scalar& color, int thickness = 1,
                       int lineType = LINE_8, int shift = 0);

绘制椭圆或弧

@param center 圆心
@param axes 长轴短轴的一半
@param angle 椭圆角度,单位 °
@param startAngle 弧的起始角度
@param endAngle 弧的结束角度

void 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);

举个例子吧,老丝儿

void OpencvExample::Example_Drawing(Mat &image)
{
	//直线
	Point pt1;
	Point pt2;
	pt1.x = 0;
	pt1.y = 0;
	pt2.x = image.cols - 1;
	pt2.y = image.rows - 1;
	line(image, pt1, pt2, Scalar(255,0,0), 5, 8, 0);
	
	//带箭头的直线
	pt1.x = 0;
	pt1.y = image.rows - 1;
	pt2.x = image.cols - 50;
	pt2.y = 50;
	arrowedLine(image, pt1, pt2, Scalar(255, 0, 0), 5, 8, 0, 0.1);

	//矩形
	Rect rect;
	rect.x = 330;
	rect.y = 90;
	rect.width = 300;
	rect.height = 300;
	rectangle(image, rect, Scalar(0,0,255), 5, 8, 0);

	//圆
	Point center;
	int radius = 30;
	center.x = 431;
	center.y = 291;
	circle(image, center, radius, Scalar(0,255,0), 5, 8, 0);

	//椭圆
	Size axes = Size(60,30);
	double angle = 0;
	double startAngle = 0;
	double endAngle = 360;
	ellipse(image, center, axes, 0, 0, 360, Scalar(200,48,125), 5, 8, 0);

	//扇形
	axes = Size(30, 30);
	center.x = 529;
	center.y = 291;
	ellipse(image, center, axes, 0, 270, 360, Scalar(200, 200, 125), -1, 8, 0);

	imshow("dst",image);
}

结果图与原图结果图

原图

相关文章:

  • 项目实战:QuickHit
  • 【听听iecne怎么说】C++技术的发展趋势, MFC过时了吗?QT呢?
  • C++1-C语言和C++的区别
  • iOS开发 - NSTimer极限使用
  • 【电商】电商后台设计—售后流程
  • 2022:【例4.7】最小n值
  • CDH 08Cloudera Manager freeIPAKerberos安装配置
  • steam搬砖基础分析
  • PMP每日一练 | 考试不迷路-9.24(包含敏捷+多选)
  • 重写,重载,重定义习题
  • 8-Arm PEG-Acrylate,8-Arm PEG-AC,八臂-聚乙二醇-丙烯酸酯长期供应
  • qt 构建路径设置
  • 2022-09-23 答辩准备
  • 网课搜题接口API
  • Golang操作ES
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【前端学习】-粗谈选择器
  • 4个实用的微服务测试策略
  • AHK 中 = 和 == 等比较运算符的用法
  • es6
  • JS数组方法汇总
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • mysql innodb 索引使用指南
  • ng6--错误信息小结(持续更新)
  • OSS Web直传 (文件图片)
  • react-native 安卓真机环境搭建
  • REST架构的思考
  • uva 10370 Above Average
  • 记一次删除Git记录中的大文件的过程
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 入门级的git使用指北
  • 思否第一天
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • # 计算机视觉入门
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #git 撤消对文件的更改
  • #QT(一种朴素的计算器实现方法)
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (02)vite环境变量配置
  • (1)虚拟机的安装与使用,linux系统安装
  • (9)目标检测_SSD的原理
  • (Python第六天)文件处理
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (SpringBoot)第二章:Spring创建和使用
  • (SpringBoot)第七章:SpringBoot日志文件
  • (超详细)语音信号处理之特征提取
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)iOS字体
  • (转载)Google Chrome调试JS
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .Net 垃圾回收机制原理(二)
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)