首页 > 解决方案 > 使用 cv2 获取绘制线的长度 - python

问题描述

我正在尝试获取我用 cv2 在图像上绘制的线的长度,我该怎么做?

到目前为止,这是我的代码:

import cv2

refPt = []
image = cv2.imread('img.jpg',1)

def click_draw(event, x, y, flags, param):
    global refPt
    if event == cv2.EVENT_LBUTTONDOWN:
        refPt = [(x, y)]
        print(refPt)

    elif event == cv2.EVENT_LBUTTONUP:
        refPt.append((x, y))
        cv2.line(image, refPt[0], refPt[1], (255, 0, 0), 2)
        cv2.imshow("image", image)
        print(refPt)


cv2.namedWindow("image")
cv2.setMouseCallback("image", click_draw)
cv2.waitKey(0)
cv2.destroyAllWindows()

refpt包含点击点的绳索。

标签: pythoncv2opencv-python

解决方案


您可以使用norm两点之间的函数(默认范数是 L2,这就是您所需要的):

cv2.norm(refPt[0],refPt[1])

推荐阅读