OpenCV 画图中几个容易忘的函数

OpenCV画图中易忘的函数

抽空,顺便整理一下资料。。。opencv中经常会用到几个画图函数,但Python的接口中给出的参数含义有时候不是很容易懂,所以记录一下。

绘制多边形cv2.polylines

函数定义:

cv2.polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]])

要绘制多边形,首先需要顶点坐标.将这些点转换为rowsx1x2形状的数组,其中rows是顶点数,它应该是int32类型。
示例:

import numpy as np
import cv2

# Create a black image
img = np.zeros((512,512,3), np.uint8)

pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)  # 每个点都是(x, y)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))

cv2.imshow('line',img)
cv2.waitKey()

如果第三个参数为False,您将获得连接所有点的折线,而不是闭合形状。
cv2.polylines()可用于绘制多条线.只需创建要绘制的所有行的列表并将其传递给函数, 所有线条都将单独绘制.绘制一组行比为每行调用cv2.line()要好得多,速度更快.

给图像中添加文字cv2.putText

函数定义:

cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])

参数含义:
text:要写入的文本数据
org:您想要放置它的位置坐标(即数据开始的左下角)。
fontFace:字体类型(检查cv2.putText()文档以获取支持的字体)
fontScale:字体比例(指定字体大小)
•常规的东西,如颜色,粗细,线型等。为了更好看,建议使用lineType = cv.LINE_AA。

示例:

import numpy as np
import cv2

# Create a black image
img = np.zeros((512,512,3), np.uint8)

font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)

cv2.imshow('show',img)
cv2.waitKey()
### 使用 OpenCV-Python 进行绘图操作 OpenCV-Python 提供了多种函数用于在图像上绘制几何形状和文本,这些功能对于创建可视化效果、标注图片以及开发图形用户界面非常有帮助。下面介绍几种常见的绘图方法。 #### 绘制线条 要在一个给定的图像对象 `img` 上画线,可以使用 `cv.line()` 函数: ```python import cv2 as cv import numpy as np # 创建一个黑色背景的空白图像 img = np.zeros((512, 512, 3), dtype=np.uint8) # 定义起点(x_start,y_start),终点(x_end,y_end),颜色(B,G,R),厚度(thickness) start_point = (50, 50) end_point = (460, 460) color = (255, 0, 0) thickness = 2 # 在图像上绘制直线 cv.line(img, start_point, end_point, color, thickness) ``` #### 绘制矩形框 为了突出显示某个区域或标记特定位置,可以用 `cv.rectangle()` 来绘制矩形边界: ```python top_left_corner = (100, 100) # 左上角坐标 bottom_right_corner = (400, 400)# 右下角坐标 rectangle_color = (0, 255, 0) # 颜色设置为绿色 rect_thickness = 3 # 边界宽度设为3像素 # 在图像上绘制矩形 cv.rectangle(img, top_left_corner, bottom_right_corner, rectangle_color, rect_thickness) ``` #### 圆圈绘制 当需要指出具体的点位时,可以通过调用 `cv.circle()` 方法来实现圆心定位的功能: ```python center_coordinates = (250, 250) # 中心点的位置 radius = 50 # 半径大小 circle_color = (0, 0, 255) # 设置红色作为填充色 circle_thickness = -1 # 如果想要实心,则将此参数设定为负数;正数值表示轮廓粗细程度 # 在图像上绘制圆形 cv.circle(img, center_coordinates, radius, circle_color, circle_thickness) ``` #### 添加文字说明 最后,在某些情况下可能还需要向图像添加一些解释性的文字信息,这时就可以利用 `cv.putText()` 实现这一目的: ```python text_to_display = "Hello World!" font_face = cv.FONT_HERSHEY_SIMPLEX # 字体样式选择 scale_factor = 1 # 文字缩放比例因子 font_color = (255, 255, 255) # 白色字体 line_type = cv.LINE_AA # 抗锯齿线条类型 # 将指定的文字放置于图像上的某处 cv.putText(img, text_to_display, (50, 50), font_face, scale_factor, font_color, line_type=line_type) ``` 以上就是通过 Python 结合 OpenCV 库完成简单绘图的一些例子[^2]。每种绘图命令都接受额外可选参数来自定义外观属性,比如透明度等高级特性也可以进一步探索学习。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值