OpenCV学习(二)——OpenCV中绘图功能

news2025/5/24 1:39:22

    • 2. OpenCV中绘图功能
      • 2.1 画线
      • 2.2 画矩形
      • 2.3 画圆
      • 2.4 画多边形
      • 2.5 添加文本

2. OpenCV中绘图功能

绘图可以实现画线、画矩形、画圆、画多边形和添加文本等操作。

import cv2
import numpy as np

# 读取图像
img = cv2.imread('lena.jpg')

# 画直线
cv2.line(img, (0, 0), (512, 512), (255, 0, 0), 5)

# 画矩形
cv2.rectangle(img, (100, 150), (150, 200), (0, 255, 0), 3)

# 画圆
cv2.circle(img, (200, 300), 40, (0, 0, 255), -1)

# 画多边形
pts = np.array([[15, 10], [20, 30], [70, 20], [50, 60]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv2.polylines(img, [pts], True, (0, 255, 255), 3)

# 添加文本
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, 'lena', (120, 450), font, 4, (255, 255, 255), 2, cv2.LINE_AA)

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

请添加图片描述

2.1 画线

cv2.line(img, pt1, pt2, color, thickness=None)

  • img:绘制形状的图像
  • pt1:线的开始坐标
  • pt2:线的结束坐标
  • color:形状的颜色
  • thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递-1 ,它将填充形状。

2.2 画矩形

cv2.rectangle(img, pt1, pt2, color, thickness=None)

  • img:绘制形状的图像
  • pt1:矩形左上角点坐标
  • pt2:矩形右上角点坐标
  • color:形状的颜色
  • thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递-1 ,它将填充形状。

2.3 画圆

cv2.circle(img, center, radius, color, thickness=None)

  • img:绘制形状的图像
  • center:中心坐标
  • radius:半径
  • color:形状的颜色
  • thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递-1 ,它将填充形状。

2.4 画多边形

cv2.polylines(img, pts, isClosed, color, thickness=None)

  • img:绘制形状的图像
  • pts:顶点的坐标,为数组且类型为int32
  • isClosed:是否闭合
  • color:形状的颜色
  • thickness:厚度,线或圆等的粗细。如果对闭合图形(如圆)传递-1 ,它将填充形状。

2.5 添加文本

cv2.putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None)

  • img:添加文本的图像
  • text:写入的文字数据
  • org:位置坐标(即数据开始的左下角)
  • fontFace:字体类型
  • fontScale:字体比例(指定字体大小)
  • color:文本的颜色
  • thickness:文本的粗细
  • lineType:线条类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1137252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Javascript】函数声明的方式

方式一: function c(a,b){return ab;}var sumc(3,4);console.log(sum); 方式二: var afunction (a,b){return ab;}; console.log(a(1,3)); 方式三: 构造声明 var cnew Function (a,b,return ab); console.log(c(1,2));声明函数过程中&…

【机器学习合集】人脸表情分类任务Pytorch实现TensorBoardX的使用 ->(个人学习记录笔记)

人脸表情分类任务 注意:整个项目来自阿里云天池,下面是开发人员的联系方式,本人仅作为学习记录!!!该文章原因,学习该项目,完善注释内容,针对新版本的Pytorch进行部分代码…

王道p40 1.设计一个递归算法,删除不带头结点的单链表L中的所有值为x的结点(c语言代码实现)图解递归

视频讲解(献丑了):p40 第1题 王道数据结构课后代码题c语言代码实现_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Xa4y1Q7ui/?spm_id_from333.999.0.0 首先它是一个不带头结点的单链表 我们就得特殊处理 我们先让*LNULL; 然后为s开辟一个新…

vue3-admin-element框架登录如何修改?

1、找到vite.config.js文件 配置反向代理 2、找到src文件下的user.js文件 3、找到views文件下的login文件 打开找到comp文件夹找到LoginFrom.vue页面进去 把这个改成自己的账户数据(密码不一致自行更改) 4、找到store文件下的modules下的user.js 5、找到…

Java工具库——FastJson的40个常用方法

那些想看却没看的书,在心里摆满一个图书馆… 工具库介绍 阿里巴巴的 FastJSON,也被称为 Alibaba FastJSON 或阿里巴巴 JSON,是一个高性能的 Java JSON 处理库,用于在 Java 应用程序中解析和生成 JSON 数据。FastJSON 以其卓越的性…

企业电脑监控软件三大盘点

信息技术的不断发展,企业对于员工电脑监控的需求越来越强烈。监控员工电脑可以有效地提高工作效率,防止员工泄露公司机密,同时也可以保护公司的信息安全。 其中给大家推荐三款实用的企业电脑监控软件: 一、域之盾软件 该软件可实…

VS2015 搭建wxWidgets-3.2.3测试环境及运行samples

此方法免去繁琐的环境配置,直接运行及写自己的代码。 1:我们到wxWidgets的官网下载 Release wxWidgets 3.2.3 wxWidgets/wxWidgets GitHub 下载完成后如下: 2:解压上面下载的wxWidgets-3.2.3.zip 解压后如下: 之后到如下目录,运行wx_vc14.sln 3:生成结果 D:\camer…

2023年以就业为目的学习Java还有必要吗?

❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。2022年度博客之星评选TOP 10🏆,Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作…

操作系统【OS】调度算法对比图

FCFS SJF 高响应比 时间片轮转 多级反馈队列 可抢占? √ √ √ 队列内算法不一定 不可抢占? √ √ √ 队列内算法不一定 特点&优点 公平实现简单有利于长作业不利于短作业有利于CPU繁忙作业不利于IO繁忙作业 因为CPU繁忙型进程即…

Kafka入门05——基础知识

目录 副本数据同步原理 HW和LEO的更新流程 第一种情况 第二种情况 数据丢失的情况 解决方案 Leader副本的选举过程 日志清除策略和压缩策略 日志清除策略 日志压缩策略 Kafka存储手段 零拷贝(Zero-Copy) 页缓存(Page Cache&…

AGENS算法c++实现

cluster二维数组存放数据的编号&#xff0c;每次计算两个簇的距离&#xff0c;找出距离最近的&#xff0c;将其中一个簇的编号加入另一个编号的一维序列中&#xff0c;再将这个编号清除&#xff0c;之后再循环cluster。 #include<vector> #include <iostream> #in…

Linux小程序——进度条

1.前置知识说明 ①回车换行 首先我们需要知道&#xff0c;回车与换行是两个概念&#xff0c;在C语言中使用"\n"时&#xff0c;默认使用的是回车换行&#xff0c;举一个简单的例子&#xff0c;在以前写作文时&#xff0c;我们在某一行写到最后一个字时&#xff0c;我…

Linux C语言开发-D9输入输出

C语言无I/O语句&#xff0c;I/O操作由函数实现 #include <stdio.h> 字符输出函数:putchar(c) 参数&#xff1a;c为字符常量、变量或表达式 功能&#xff1a;把字符c输出到显示屏上 返回值&#xff1a;正常&#xff0c;为显示的代码值 格式输出函数:printf("格式控…

10.25verilog复习,代码规范复盘,触发器复习

verliog复习 1.模块的输入输出(reg与wire) 输入是线性&#xff0c;wire, 输出较复杂需要之前的状态&#xff0c;不仅仅是由当下输入来的信号的与或非组合而成的&#xff0c;需要保存之前状态的&#xff0c;输出类型是reg。 比如计数器&#xff0c;需要在之前计数的基础上再…

排列数字(深度优先搜索) C++实现

题目 代码 #include<iostream> using namespace std; const int N1010; int path[N],n; bool flag[N];void dfs(int u){if(un){for(int i0;i<n;i) printf("%d ",path[i]);puts("");return ;}for(int i1;i<n;i){if(!flag[i]){path[u]i;flag[i…

Postman的高级使用,傻瓜式学习【下】

目录 前言 1、全局变量、环境变量 1.1、概念&#xff1a; 1.2、如何设置全局变量、环境变量 1.3、获取全局变量、环境变量 1.4、案例1&#xff1a;手动设置变量&#xff0c;请求参数获取 1.5、案例2&#xff1a;代码设置变量&#xff0c;代码获取变量 2、Postman读取外部…

jvm摘要

第 2 章 Java 内存区域与内存溢出异常 2.2 运行时数据区域 程序计数器-线程私有:是一块较小的内存空间&#xff0c;它可以看作是当前线程所执行的字节码的行号指示器。 程序计数器是唯一一个没有规定任何OutOfMemoryError 情况的区域。 Java 虚拟机栈-线程私有:用于执行Java …

设计模式:桥接模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

上一篇《适配器模式》 下一篇《装饰器模式》 简介&#xff1a; 桥接模式&#xff0c;它是一种结构型设计模式&#xff0c;它的主要目的是将抽象部分与具体实现部分分离&#xff0c;使它们都可以独立地变化。…

【码银送书第九期】《ChatGPT 驱动软件开发:AI 在软件研发全流程中的革新与实践》

计算机技术的发展和互联网的普及&#xff0c;使信息处理和传输变得更加高效&#xff0c;极大地改变了金融、商业、教育、娱乐等领域的运作方式。数据分析、人工智能和云计算等新兴技术&#xff0c;也在不断地影响和改变着各个行业。 如今&#xff0c;我们正在见证人工智能技术的…

九方面解读国家数据局成立,可交易数据的五大特性探讨

​ 10月25日&#xff0c;国家数据局正式揭牌&#xff0c;标志着我国数据管理进入了新的阶段。国家数据局负责协调推进数据基础制度建设&#xff0c;统筹数据资源整合共享和开发利用&#xff0c;统筹推进数字中国、数字经济、数字社会规划和建设等&#xff0c;由国家发展和改革…