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

OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字

目录

1.绘制直线line()

2.绘制圆形circle()

3.绘制椭圆形ellipse() 

4.绘制矩形rectangle()

5.绘制多边形 fillPoly() 

6.绘制文字putText()

7.例子


1.绘制直线line()

CV_EXPORTS_W void line(InputOutputArray img,Point pt1, Point pt2,const Scalar& color,int thickness = 1, int lineType = LINE_8, int shift = 0
);
  • img:绘制圆形的图像
  • ptl:直线起始点在图像中的坐标
  • pt2: 直线终点在图像中的坐标
  • color:圆形的颜色,用三通道表示
  • thickness:轮廓的宽度
  • lineType:边界的类型,可取值为FILLED,LINE 4,LINE 8 和LINE AA
  • shift:中心坐标和半径数值中的小数位数

2.绘制圆形circle()

CV_EXPORTS_W void circle(InputOutputArray img, Point center, int radius,const Scalar& color, int thickness = 1,int lineType = LINE_8, int shift = 0);
  • img:绘制圆形的图像
  • center:圆形的中心位置。
  • radius:圆形的半径长度,单位为像素。
  • color:圆形的颜色,用三通道表示
  • thickness:轮廓的宽度
  • lineType:边界的类型,可取值为FILLED,LINE 4,LINE 8 和LINE AA
  • shift:中心坐标和半径数值中的小数位数

3.绘制椭圆形ellipse() 

CV_EXPORTS_W 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);
  • img:绘制圆形的图像
  • center:圆的中心坐标
  • axes:椭圆主轴大小的一半。
  • angle:椭圆旋转的角度,单位为度
  • startAngle:椭圆弧起始的角度,单位为度
  • endAngle:椭圆弧终止的角度,单位为度
  • color:圆形的颜色,用三通道表示
  • thickness:轮廓的宽度
  • lineType:边界的类型,可取值为FILLED,LINE 4,LINE 8 和LINE AA
  • shift:中心坐标和半径数值中的小数位数

4.绘制矩形rectangle()

CV_EXPORTS_W void rectangle(InputOutputArray img, Point pt1, Point pt2,const Scalar& color, int thickness = 1,int lineType = LINE_8, int shift = 0);
  • img:绘制圆形的图像
  • pt1:左上角顶点
  • pt2:右下角顶点。
  • color:圆形的颜色,用三通道表示
  • thickness:轮廓的宽度
  • lineType:边界的类型,可取值为FILLED,LINE 4,LINE 8 和LINE AA
  • shift:中心坐标和半径数值中的小数位数

5.绘制多边形 fillPoly() 

CV_EXPORTS_W void fillPoly(InputOutputArray img, InputArrayOfArrays pts,const Scalar& color, int lineType = LINE_8, int shift = 0,Point offset = Point() );
  • img:绘制圆形的图像
  • pts: 多边形顶点数组,可以存放多个多边形的顶点坐标的数组
  • color:圆形的颜色,用三通道表示
  • lineType:边界的类型,可取值为FILLED,LINE 4,LINE 8 和LINE AA
  • shift:中心坐标和半径数值中的小数位数
  • offset:所有顶点的可选偏移。

6.绘制文字putText()

CV_EXPORTS_W void putText( InputOutputArray img, const String& text, Point org,int fontFace, double fontScale, Scalar color,int thickness = 1, int lineType = LINE_8,bool bottomLeftOrigin = false );
  • img:绘制圆形的图像
  • text:输出到图像中的文字,目前OpenCV 4只支持英文。
  • org:图像中文字字符串的左下角像素坐标。
  • fontFace:字体类型的选择标志
  • fontScale:字体的大小。
  • color:圆形的颜色,用三通道表示
  • thickness:轮廓的宽度
  • lineType:边界的类型,可取值为FILLED,LINE 4,LINE 8 和LINE AA
  • bottomLeftOrigin: 图像数据原点的位置,默认为左上角,如果参数改为true,则原点为左下角。

其中,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_ITALIC - 斜体字体。

7.例子

   //    生成一个黑色图像用于绘制几何图形Mat img=Mat::zeros(Size(512,512),CV_8UC3);//绘制圆形circle(img,Point(50,50),25,Scalar(255,255,255),-1);//绘制一个实心圆circle(img,Point(100,50),20,Scalar(255,255,255),4);//绘制一个空心圆//绘制直线line(img,Point(100,100),Point(200,100),Scalar(255,255,255),2,LINE_4,0);//绘制一条直线//绘制椭圆ellipse(img,Point(300,255),Size(100,70),0,0,100,Scalar(255,255,255),-1);//绘制矩形rectangle(img,Point(50,400),Point(100,450),Scalar(125,125,125),-1);//绘制多边形Point pp[2][6];pp[0][0]=Point(72,200);pp[0][1]=Point(142,204);pp[0][2]=Point (226,263);pp[0][3]=Point (172,310);pp[0][4]=Point (117,319);pp[0][5]=Point (15,260);pp[1][0]=Point(359,339);pp[1][1]=Point(447,351);pp[1][2]=Point (504,349);pp[1][3]=Point (484,433);pp[1][4]=Point (418,449);pp[1][5]=Point (354,402);Point  pp2[5];pp2[0]=Point (350,83);pp2[1]=Point(463,90);pp2[2]=Point (500,171);pp2[3]=Point (421,194);pp2[4]=Point (338,141);const Point *pts[3]={pp[0],pp[1],pp2};//pts变量的生成int npts[]={6,6,5};fillPoly(img,pts,npts,3,Scalar(125,125,125),8);//绘制3个多边形putText(img,"Learn OpenCV 4",Point(100,400),2,1,Scalar(255,255,255));imwrite("/sdcard/DCIM/img.jpg",img);

相关文章:

OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字

目录 1.绘制直线line() 2.绘制圆形circle() 3.绘制椭圆形ellipse() 4.绘制矩形rectangle() 5.绘制多边形 fillPoly() 6.绘制文字putText() 7.例子 1.绘制直线line() CV_EXPORTS_W void line(InputOutputArray img,Point pt1, Point pt2,const Scalar& color,int t…...

[华为云云服务器评测] Unbutnu添加SSH Key、编译启动Springboot项目

系列文章目录 第一章 [linux实战] 华为云耀云服务器L实例 Java、node环境配置 第二章 [linux实战] Unbutnu添加SSH Key、启动Springboot项目 文章目录 系列文章目录前言一、任务拆解二、配置git,添加SSH Key2.1、登录远程主机2.2、配置git用户名和邮箱2.3、生成SSH key2.4、查…...

【MySQL学习笔记】(七)内置函数

内置函数 日期函数示例案例-1案例-2 字符串函数示例 数学函数其他函数 日期函数 示例 获得当前年月日 mysql> select current_date(); ---------------- | current_date() | ---------------- | 2023-09-03 | ---------------- 1 row in set (0.00 sec)获得当前时分秒…...

《Python魔法大冒险》004第一个魔法程序

在图书馆的一个安静的角落,魔法师和小鱼坐在一张巨大的桌子前。桌子上摆放着那台神秘的笔记本电脑。 魔法师: 小鱼,你已经学会了如何安装魔法解释器和代码编辑器。是时候开始编写你的第一个Python魔法程序了! 小鱼:(兴奋地两眼放光)我准备好了! 魔法师: 不用担心,…...

架构,平台,框架的区别和联系

1、解释说明 - 架构:在软件开发中,架构是指软件的整体设计和组织方式。它包括了软件的结构、组件和交互方式等方面的设计。架构定义了系统的高级结构和组织方式,以及各个组件之间的关系和交互方式。一个良好的架构可以提高软件的可维护性、可…...

Mac 安装php多版本,brew安装php8.0

因为需要我要在mac上装两个php版本,先前我已经装过php7.4,下面我们逐步安装php8.0 开始安装8.0: 直接运行安装 brew install php8.0 遇到问题怀疑是仓库太老了,更新一下homebrew ,重新安装 brew update 安装成功了,不过看了下版本好像不能正…...

【100天精通Python】Day53:Python 数据分析_NumPy数据操作和分析进阶

目录 1. 广播 2 文件输入和输出 3 随机数生成 4 线性代数操作 5 进阶操作 6 数据分析示例 1. 广播 广播是NumPy中的一种机制,用于在不同形状的数组之间执行元素级操作,使它们具有兼容的形状。广播允许你在不显式复制数据的情况下,对不同…...

druid连接不上doris有哪些可能原因

如果你在使用Druid连接池连接Doris时遇到问题,无法连接上数据库,可能有以下几个原因和解决方案: 网络配置问题:确保你的应用程序能够与Doris数据库所在的服务器进行通信。检查防火墙设置、网络配置以及Doris数据库的监听端口是否…...

双边滤波 Bilateral Filtering

本文是对图像去噪领域经典的双边滤波法的一个简要介绍与总结,论文链接如下: https://users.soe.ucsc.edu/~manduchi/Papers/ICCV98.pdf 1.前言引入 对一副原始灰度图像,我们将它建模为一张二维矩阵u,每个元素称为一个像素pixel&am…...

PXE批量装机

目录 前言 一、交互式 (一)、搭建环境 (二)、配置dhcp服务 (三)、FTP服务 (四)、配置TFTP服务 (五)、准备pxelinx.0文件、引导文件、内核文件 &#…...

Linux--VMware的安装和Centos

一、VMware和Linux的关系 二、VMware的安装 VM_ware桌面虚拟机 最新中文版 软件下载 (weizhen66.cn) VMware-Workstation-Lite-16.2.2-19200509-精简安装注册版.7z - 蓝奏云 如果安装不成功,则设置BIOS 三、在VMware中加入Centos 下载地址: CentOS-…...

dji uav建图导航系列()ROS中创建dji_sdk节点包(一)项目结构

文章目录 1、整体项目结构1.1、 目录launch1.2、文件CMakeLists.txt1.3、文件package.xml1.4、目录include1.4、目录srv在ROS框架下创建一个无人机的节点dji_sdk,实现必需的订阅(控制指令)、发布(无人机里程计)、服务(无人机起飞降落、控制权得很)功能,就能实现一个类似…...

基于x86_64 ubuntu22.04的framebuffer编程

文章目录 前言一、framebuffer简介二、framebuffer接口1.framebuffer设备描述信息2.framebuffer访问接口3.查询/设置可更改信息 三、使用步骤 前言 前段时间由于笔记本没有保管好,LCD显示屏压碎了。于是,将笔记本电脑拆开查看LCD型号。在淘宝上下单买了…...

解密回文--栈

“ xyzyx ”是一个回文字符串,所谓回文字符 串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“ aha ”和“ ahaha ”均是回 文,但“ ahah ”不是回文。通过栈这个数据结构我们将很容易判断一个字符串是否为回文。 首先我们需…...

Mysql主从服务安装配置

1.下载地址 MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/ 2.安装配置 1.下载解压后,拷贝一份作为slave的安装目录 3.配置my.ini 由于下载mysql8版本,解压后,没有相关的my…...

双向BFS

1034 Number Game 分数 35 作者 陈越 单位 浙江大学 A number game is to start from a given number A, and to reach the destination number B by a sequence of operations. For the current number X, there are 3 types of operations: XX1 XX−1 XXN Your job is to f…...

数据艺术:精通数据可视化的关键步骤

数据可视化是将复杂数据转化为易于理解的图表和图形的过程,帮助我们发现趋势、关联和模式。同时数据可视化也是数字孪生的基础,本文小编带大家用最简单的话语为大家讲解怎么制作一个数据可视化大屏,接下来跟随小编的思路走起来~ 1.数据收集和…...

MySQL 是如何实现事务的四大特性的?

分析&回答 如果你不知道事务更不知道四大特性请先看看:说说什么是事务 原子性 语句要么都执行,要么都不执行,是事务最核心的特性,事务本身来说就是以原子性来定义的,实现主要是基于undo log undo log&#xff…...

python实现zscore归一化和minmax标准化

zscore归一化: minmax from sklearn import preprocessing from sklearn.preprocessing import StandardScaler import numpy as np# 数据 x np.array([[1.,-1.,2.],[2.,0.,0.],[0.,1.,-1.]]) print(----------------minmaxscaler标准化-------------) # 调用minma…...

架构师成长之路Redis第三篇|Redis key过期清除策略

Eviction policies maxmemory 100mb 当我们设置的内存达到指定的内存量时,清除策略的配置方式决定了默认行为。Redis可以为可能导致使用更多内存的命令返回错误,也可以在每次添加新数据时清除一些旧数据以返回到指定的限制。 当达到最大内存限制时,Redis所遵循的确切行为是…...

docker详细操作--未完待续

docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用&#xff0c;用户可以通过网页界面上传黑白视频&#xff0c;系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观&#xff0c;不需要了解技术细节。 效果图 ​二、实现思路 总体思路&#xff1a; 用户通过Gradio界面上…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...