OpenCV - 绘图函数(Python实现)

本文介绍了如何使用OpenCV库在Python中进行图形绘制,包括画线、矩形、圆、椭圆、多边形和写文字,详细解析了各个函数的参数和用法,并提供了示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 画线
img:你想要绘制图形的那幅图像。
color:形状的颜色。以 RGB 为例,需要传入一个元组,例如:(255,0,0)代表蓝色。对于灰度图只需要传入灰度值。
thickness:线条的粗细。如果给一个闭合图形设置为 -1,那么这个图形就会被填充。默认值是 1.
linetype:线条的类型, 8 连接,抗锯齿等。默认情况是 8 连接。 cv2.LINE_AA为抗锯齿,这样看起来会非常平滑。

cv2.line(img, Point pt1, Point pt2, color, thickness=1, line_type=8, shift=0)
pt1,pt2分别代表直线的两个端点。

cv2.line(img,(0,0),(1024,540),(255,255,255),1,cv2.LINE_AA)

入口参数: 在img图像上 绘制 (0,0)到(1024,540)的 宽度为 1抗锯齿白线(RGB都为255)。

2. 画矩形

cv2.rectangle(img, Point pt1, Point pt2, color, thickness=1, line_type=8, shift=0)
pt1,pt2分别代表矩形的左上角点和右下角点。

cv2.rectangle(img,(20,20),(510,510),(0,255,0),5)

### 如何使用 OpenCV-Python 绘制直线 在 OpenCV-Python 中,`cv2.line()` 函数用于绘制一条连接两个点的直线。以下是 `cv2.line()` 的基本语法及其参数解释: #### 参数说明 - **img**: 输入图像(即要在其上绘图的目标图像)。 - **pt1**: 起始点坐标 `(x1, y1)`,表示直线起点的位置。 - **pt2**: 结束点坐标 `(x2, y2)`,表示直线终点的位置。 - **color**: 直线的颜色,通常以 BGR 格式指定。例如 `(0, 0, 255)` 表示红色。 - **thickness**: 直线的粗细程度,默认值为 1。 - **lineType**: 线条类型,可选值包括 `cv2.LINE_AA`, `cv2.LINE_8`, 和 `cv2.LINE_4`。 下面是完整的代码示例,展示如何使用 OpenCV-Python 在一张空白图像上绘制一条直线[^1]。 ```python import cv2 import numpy as np # 创建一个黑色背景的画布 (高度=512px, 宽度=512px, RGB三通道) image = np.zeros((512, 512, 3), dtype=np.uint8) # 定义起始点和结束点 start_point = (50, 50) # 起点坐标 (x1, y1) end_point = (400, 400) # 终点坐标 (x2, y2) # 设置线条颜色和厚度 color = (0, 255, 0) # 绿色 (B,G,R) thickness = 2 # 粗细为 2 像素 # 使用 cv2.line() 方法绘制直线 cv2.line(image, start_point, end_point, color, thickness) # 显示结果图像 cv2.imshow('Line Drawing', image) cv2.waitKey(0) # 按任意键退出窗口 cv2.destroyAllWindows() ``` 上述代码会生成一幅大小为 \(512 \times 512\) 的黑底彩色图像,并在其上绘制一条绿色的斜线。 --- ### 注意事项 如果需要进一步自定义线条样式,比如抗锯齿效果,则可以在 `lineType` 参数中设置为 `cv2.LINE_AA`,这会使线条更加平滑美观[^2]。 此外,在实际应用中,可能还需要加载已有图像并在此基础上进行绘图操作。此时只需将 `np.zeros(...)` 替换为目标图像即可[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值