如何在 OpenCV Python 中在图像上绘制带箭头的线?


OpenCV 提供了函数 cv2.arrowedLine() 用于在图像上绘制带箭头的线。此函数采用不同的参数来绘制线条。请参阅下面的语法。

cv2.arrowedLine(img, start, end, color, thickness, line_type, shift, tip_length)
  • img − 要在其上绘制线条的输入图像。

  • Start − 线的起始坐标,格式为 (宽度,高度)。

  • End − 线的结束坐标,格式为 (宽度,高度)。

  • Color − 线的颜色。对于 BGR 格式的红色,我们传递 (0, 0, 255)

  • Thickness − 线的像素厚度。

  • line_type − 线的类型。

  • shift − 小数位数。

  • tip_length − 箭头尖端相对于箭头长度的长度。

输出− 它返回在其中绘制了线条的图像。

步骤

按照以下步骤在图像上绘制带箭头的线:

导入所需的库。在所有以下 Python 示例中,所需的 Python 库是 OpenCV。确保您已安装它。

import cv2

使用 cv2.imread() 读取输入图像。

image = cv2.imread('cabinet.jpg')

使用 cv2.arrowedLine() 在图像上绘制带箭头的线,并传递所需的参数。

cv2.arrowedLine(image, (50, 100), (300, 450), (0,0,255), 3, 5, 0, 0.1)

显示绘制了带箭头的线的图像。

cv2.imshow("ArrowedLine",image)
cv2.waitKey(0)
cv2.destroyAllWindows()

让我们看一些示例,以便清楚地了解它是如何完成的。

示例 1

在此程序中,我们使用以下线条属性在图像上绘制一条红线:

  • 起点 = (50, 100),

  • 终点 = (300, 450),

  • 颜色 = (0,0,255),

  • 厚度= 3,

  • 线型 = 5,

  • shift = 0,以及

  • 箭头长度 = 0.1

# import required libraries import cv2 # read the input image image=cv2.imread('cabinet.jpg') # Draw the arrowed line passing the arguments cv2.arrowedLine(image, (50, 100), (300, 450), (0,0,255), 3, 5, 0, 0.1) cv2.imshow("ArrowedLine",image) cv2.waitKey(0) cv2.destroyAllWindows()

输出

运行以上程序时,将产生以下输出:

示例 2

在此程序中,我们使用不同的线条属性绘制三条不同的线:

import cv2 image=cv2.imread('cabinet.jpg') cv2.arrowedLine(image, (50, 50), (200, 150), (0,0,255), 3, 7, 0, 0.2) cv2.arrowedLine(image, (300, 120), (50, 320), (0,255,255), 3, 7, 0, 0.2) cv2.arrowedLine(image, (50, 200), (500, 400), (255,0,255), 3, 7, 0, 0.05) cv2.imshow("ArrowedLines",image) cv2.waitKey(0) cv2.destroyAllWindows()

输出

执行后,它将生成以下输出窗口:

更新于: 2022-09-27

2K+ 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告