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

Python----OpenCV(图像的绘制——绘制直线,绘制矩形,绘制圆形,绘制多边形)

一、绘制直线

cv2.line(image, pt1, pt2, color, thickness)
参数说明
image目标图像。
pt1线段起点,格式为 (x, y)。
pt2线段终点,格式为 (x, y)。
color线条颜色,格式为 (B, G, R)。
thickness线条的粗细,默认值为 1。
import cv2
import numpy as npimg = np.zeros((500, 500, 3), dtype=np.uint8) # 创建一个500x500像素的黑色图片,3表示彩色图片(BGR),np.uint8表示像素值为8位无符号整数
cv2.line(img, (100, 100), (300, 300), (0,0,255), 5) # 在图片上画一条直线,起点(100,100),终点(300,300),颜色为灰色(125,125,125),线宽为5
cv2.imshow('img', img) # 显示图片,窗口名为'img'
cv2.waitKey(0) # 等待按键,0表示无限等待,直到用户按下任意键

二、绘制矩形

cv2.rectangle(image, pt1, pt2, color, thickness)
参数说明
image目标图像。
pt1线段起点,格式为 (x, y)。
pt2线段终点,格式为 (x, y)。
color线条颜色,格式为 (B, G, R)。
thickness线条的粗细,默认值为 1。
import cv2
import numpy as np# 创建一个空白图像
image = np.zeros((400, 400, 3), dtype=np.uint8) # 创建一个400x400像素的黑色图片,3表示彩色图片(BGR),np.uint8表示像素值为8位无符号整数# 绘制一个绿色矩形
cv2.rectangle(image, (100, 100), (300, 200), (0, 255, 0), thickness=3) # 在图片上画一个矩形,左上角坐标(100,100),右下角坐标(300,200),颜色为绿色(0,255,0),线宽为3cv2.imshow("Rectangle", image) # 显示图片,窗口名为"Rectangle"
cv2.waitKey(0) # 等待按键,0表示无限等待,直到用户按下任意键
cv2.destroyAllWindows() # 销毁所有OpenCV创建的窗口

三、绘制圆形

cv2.circle(image, center, radius, color, thickness)
参数说明
image目标图像。
center圆心坐标 (x, y)。
radius圆的半径。
color线条颜色,格式为 (B, G, R)。
thickness正值 - 圆的边框粗细,负值 - 填充整个圆。
import cv2
import numpy as np# 创建一个空白图像
image = np.zeros((400, 400, 3), dtype=np.uint8) 
# 使用NumPy创建一个400x400像素的数组,表示一个空白图像。
# (400, 400) 是图像的高度和宽度。
# 3 表示图像有3个颜色通道(蓝色、绿色、红色,即BGR格式)。
# dtype=np.uint8 指定数组中每个元素的类型是8位无符号整数,这意味着每个颜色通道的像素值范围是0到255。
# 初始值为0,所以图像是黑色的。# 绘制一个蓝色圆
cv2.circle(image, (200, 200), 50, (255, 0, 0), thickness=-1)
# 在图像上绘制一个圆。
# image: 要在其上绘制圆的图像。
# (200, 200): 圆心的坐标,X轴200,Y轴200。
# 50: 圆的半径,像素单位。
# (255, 0, 0): 圆的颜色,BGR格式。这里是蓝色(蓝色通道255,绿色和红色通道0)。
# thickness=-1: 圆的填充方式。-1表示填充整个圆,如果指定一个正整数,则表示圆的边框宽度。cv2.imshow("Circle", image) # 显示图像,窗口标题为"Circle"
cv2.waitKey(0) # 等待用户按下任意按键。0表示无限等待。
cv2.destroyAllWindows() # 关闭所有OpenCV创建的窗口。

四、绘制多边形

cv2.polylines(image, pts, isClosed, color, thickness)
参数说明
image目标图像。
pts多边形的顶点集合,格式为 np.array([[x1, y1], [x2, y2], ...],dtype=np.int(32)。
isClosed布尔值,是否闭合多边形。
color线条颜色,格式为 (B, G, R)。
thickness边框的粗细。
import cv2
import numpy as np# 创建一个空白图像
image = np.zeros((400, 400, 3), dtype=np.uint8)
# 使用NumPy创建一个400x400像素的数组,表示一个空白图像。
# (400, 400) 是图像的高度和宽度。
# 3 表示图像有3个颜色通道(蓝色、绿色、红色,即BGR格式)。
# dtype=np.uint8 指定数组中每个元素的类型是8位无符号整数,这意味着每个颜色通道的像素值范围是0到255。
# 初始值为0,所以图像是黑色的。# 定义多边形顶点
points = np.array([[150, 150], [250, 150], [300, 250], [200, 300]], dtype=np.int32)
# 定义多边形的各个顶点坐标。
# np.array() 创建一个NumPy数组。
# 每个子列表 [x, y] 代表一个顶点的(x, y)坐标。
# dtype=np.int32 指定顶点坐标的数据类型为32位整数。# 绘制多边形
cv2.polylines(image, [points], isClosed=True, color=(255, 255, 0), thickness=2)
# 在图像上绘制多边形。
# image: 要在其上绘制多边形的图像。
# [points]: 顶点的数组列表。即使只有一个多边形,也需要将其放在一个列表中。
# isClosed=True: 表示多边形是闭合的,即最后一个顶点会与第一个顶点连接。如果为False,则只绘制开放的折线。
# color=(255, 255, 0): 多边形的颜色,BGR格式。这里是青色(蓝色和绿色通道255,红色通道0)。
# thickness=2: 多边形边框的线宽,像素单位。cv2.imshow("Polygon", image) # 显示图像,窗口标题为"Polygon"
cv2.waitKey(0) # 等待用户按下任意按键。0表示无限等待。
cv2.destroyAllWindows() # 关闭所有OpenCV创建的窗口。

相关文章:

  • win11修改DNS
  • python基础与数据类型
  • 【和春笋一起学C++】(十九)C++函数新特性——对象的引用作为函数参数
  • springAI 大模型应用开发
  • WooCommerce独立站商城的最大优势
  • PCB设计杂谈之一
  • C# 中的Async 和 Await 的用法详解
  • Python应用八股文
  • Java大模型开发入门 (10/15):连接外部世界(下) - 端到端构建完整的RAG问答系统
  • 高效同步Linux服务器文件技巧
  • 计算机网络-自顶向下—第二章应用层-重点复习笔记
  • vue3+ts实现全屏效果
  • 力扣面试150题--添加与搜索单词 - 数据结构设计
  • Redux 原理深度剖析
  • PX4无人机|MID360使用FAST_LIO,实现自主定位及定点——PX4无人机配置流程(五)
  • CTFshow-PWN-栈溢出(pwn56-pwn59)
  • 2025-06-14【视觉】批量筛选图集中包含某种物体对象的方法
  • 解决ModuleNotFoundError: No module named ‘open_clip‘
  • 多项目状态如何集中监控与汇总
  • 基于开源AI大模型与智能工具的优质内容引流策略研究——以AI智能名片及S2B2C商城小程序源码应用为例
  • 建设网站分几个步骤/短视频推广渠道有哪些
  • 电子商务网站建设的安全性/徐州seo代理计费
  • 网站关键词引流/优化网站排名费用
  • 平台推广员是干嘛的/账号seo是什么
  • 装潢设计软件免费/青岛谷歌seo
  • 水果 网站源码/企业邮箱域名