返回

一箭定音:轻松绘制带箭头的线——OpenCV-Python

后端

OpenCV-Python教程:用cv.arrowedLine绘制带箭头的线

在计算机视觉中,经常需要在图像上绘制各种形状和线条来辅助分析或标记图像中的信息。OpenCV提供了丰富的函数来满足这一需求,其中就包括cv.arrowedLine函数,它可以绘制带箭头的直线。

1. 学习目标

  • 学会使用 cv.arrowedLine 带箭头的直线;
  • 绘制箭头的直线的注意事项。

2. 绘制箭头直线

2.1 cv.arrowedLine 函数说明

cv.arrowedLine 函数的语法格式如下:

cv2.arrowedLine(img, pt1, pt2, color, thickness=None, tipLength=None, line_type=None, shift=None, dx=None, dy=None)
  • img:需要绘制箭头的图像对象。
  • pt1:箭头的起始点坐标,是一个元组 (x1, y1)。
  • pt2:箭头的结束点坐标,是一个元组 (x2, y2)。
  • color:箭头的颜色,是一个三元组 (B, G, R)。
  • thickness:箭头的粗细,是一个整数。
  • tipLength:箭头尖端的长度,是一个整数。
  • line_type:箭头的线型,可以是 cv2.LINE_AA、cv2.LINE_8、cv2.LINE_4 或 cv2.LINE_AA_SQUARE。
  • shift:箭头的偏移量,是一个整数。
  • dx, dy:箭头的偏移量,分别表示水平和垂直方向上的偏移量。

2.2 绘制带箭头的直线实例

import cv2

# 创建一个黑色图像
img = np.zeros((512, 512, 3), np.uint8)

# 绘制一条带箭头的直线
cv2.arrowedLine(img, (50, 50), (450, 450), (0, 255, 0), 5, tipLength=10)

# 显示图像
cv2.imshow('带箭头的直线', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行上面的代码,将在图像上绘制一条从点 (50, 50) 到点 (450, 450) 的绿色带箭头的直线。

3. 注意事项

在使用 cv.arrowedLine 绘制带箭头的直线时,需要注意以下几点:

  • 箭头尖端长度 tipLength 不能小于 0。
  • 箭头偏移量 shift 不能小于 -0.5 或大于 0.5。
  • 箭头偏移量 dx 和 dy 不能同时为 0。