python - 使用 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包含点击点的绳索。
解决方案
您可以使用norm
两点之间的函数(默认范数是 L2,这就是您所需要的):
cv2.norm(refPt[0],refPt[1])
推荐阅读
- azure-data-factory - DateTime 格式错误,复制活动。Azure 数据工厂
- javascript - node.js - mongoose findOneandUpdate 中的嵌套数组,带有 arrayFilter
- sql - 是否有一个函数可以在一个查询中处理“按组数分组”(按聚合分组)?
- android - 输入'列表
' 不是类型 'Map 的子类型 ' 在颤振应用程序中 - ios - 从 Swift ViewController 中的 Objective C ViewController 访问 Objective C 字典
- java - curl 请求 - 更改为 RestTemplate - 无正文错误
- wso2 - 在 wso2 中如何编写自定义 OAuth2 令牌验证器
- spring - 如何在 JpaSpecificationExecutor#findAll 中按字符串字段作为数值排序
- json - 我是否必须考虑我的枚举编码密钥的每种情况?
- xml - 使用 XSLT 将所有子节点转换为兄弟节点