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

python用cv2画图(line, rectangle, text等)

Python做图像图形研究的时候,通常需要画很多辅助几何形状(比如bounding box等)。基于opencv的几何图形绘制具有易用性,而且天然能和numpy数组交互。

本文总结了几种常用的cv2画几何图形的方法,当一个简易的手册使用:

1. 直线绘制:cv2.line

输入规范如下:

cv2.line(image, start_point, end_point, color, thickness)

两点确定一条直线,所以我们需要明确起始点,终点的位置即可。另外,我们可以通过color和thickness确定直线的颜色和厚度。我们来看一个小demo:

import cv2
import numpy as npblank = np.zeros((224, 224, 3), np.uint8)# draw line
cv2.line(blank, (22, 99), (83, 200), (255, 255, 255), 2)
cv2.imwrite("line.png", blank)

画出效果为:
draw_line

2. 矩形绘制:cv2.rectangle

输入规范如下:

cv2.rectangle(img, pt1, pt2, color, thickness, lineType, shift )

同样,两点(左上角和右下角)确定一个矩形。我们看一下demo:

import cv2
import numpy as npblank = np.zeros((224, 224, 3), np.uint8)# draw rectangle
cv2.rectangle(blank, (22, 99), (83, 200), (255, 255, 255), 2)
cv2.imwrite("rect.png", blank)

draw_rectangle

3. 圆形绘制:cv2.circle

输入规范:

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

通过圆心坐标和半径即可确定一个圆。实验如下:

import cv2
import numpy as npblank = np.zeros((224, 224, 3), np.uint8)# draw circle
cv2.circle(blank, (112, 112), 12, (255, 255, 255), 1)
cv2.imwrite("circle.png", blank)

效果如下:
draw_circle

4. 输入文字:cv2.putText

cv2.putText(image, text, org, font, fontScale, color, thickness, lineType=None, bottomLeftOrigin=None)

确定文本、文字位置、字体。实验如下:

import cv2
import numpy as npblank = np.zeros((224, 224, 3), np.uint8)# draw rectangle
font=cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(blank, "helloworld", (80,90), font, 0.5, (255,255,255), 1)
cv2.imwrite("text.png", blank)

实验效果如下:
putText

http://www.lryc.cn/news/217949.html

相关文章:

  • 解决方案中word中分页符的使用
  • ubuntu20.04下apache启用php7.4-fpm
  • 在 CentOS 服务器上部署 JAR 文件到 Docker 容器
  • vector类模拟实现(c++)(学习笔记)
  • Redis Sentinel 哨兵模式
  • 实用篇-MQ消息队列
  • springboot打包时依赖jar和项目jar分开打包;jar包瘦身
  • 嵌入式系统的元素
  • 提升ChatGPT答案质量和准确性的方法Prompt engineering实用的prompt灵感和技巧
  • [Machine Learning] Learning with Noisy Labels
  • 集简云slack(自建)无需API开发轻松连接OA、电商、营销、CRM、用户运营、推广、客服等近千款系统
  • Idea 对容器中的 Java 程序断点远程调试
  • vscode设置保存后,自动格式化代码
  • datagrip出现 java.net.ConnectException: Connection refused: connect.
  • Docker 安装ELK7.7.1
  • 决策树算法
  • maven之pom文件详解
  • 深度学习之基于Python+OpenCV+dlib的考生信息人脸识别系统(GUI界面)
  • 创建javaEE项目(无maven),JSP(九大内置对象)、Servlet(生命周期)了解
  • BIOS开发笔记 - HDA Audio
  • C语言——选择排序
  • vue详细安装教程
  • Java 正则表达式字符篇
  • shell脚本代码混淆
  • 【MATLAB第81期】基于MATLAB的LSTM长短期记忆网络预测模型时间滞后解决思路(更新中)
  • 订单业务和系统设计(一)
  • 安全模型的分类与模型介绍
  • I/O多路转接之select
  • “如何对TXT文件的内容进行连续行删除?实现一键文件整理!
  • stable diffusion公司发布4款LLM大语言模型,为何大家都喜爱LLM?