首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用python opencv计算两个人之间的距离?

使用Python OpenCV计算两个人之间的距离可以通过以下步骤实现:

  1. 导入所需的库和模块:
代码语言:txt
复制
import cv2
import numpy as np
  1. 加载人脸检测器和人脸关键点检测器:
代码语言:txt
复制
face_cascade = cv2.CascadeClassifier('path/to/haarcascade_frontalface_default.xml')
facial_landmark_predictor = dlib.shape_predictor('path/to/shape_predictor_68_face_landmarks.dat')
  1. 定义计算距离的函数:
代码语言:txt
复制
def calculate_distance(image_path):
    # 读取图像
    image = cv2.imread(image_path)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    # 检测人脸
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

    # 检测人脸关键点
    for (x, y, w, h) in faces:
        rect = dlib.rectangle(int(x), int(y), int(x + w), int(y + h))
        shape = facial_landmark_predictor(gray, rect)
        landmarks = shape_to_np(shape)

        # 计算两个人之间的距离
        distance = np.linalg.norm(landmarks[0] - landmarks[1])

        # 绘制人脸框和关键点
        cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
        for (x, y) in landmarks:
            cv2.circle(image, (x, y), 2, (0, 0, 255), -1)

        # 在图像上显示距离
        cv2.putText(image, f'Distance: {distance}', (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)

    # 显示图像
    cv2.imshow('Image', image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
  1. 调用函数并传入图像路径:
代码语言:txt
复制
calculate_distance('path/to/image.jpg')

这样就可以使用Python OpenCV计算两个人之间的距离了。请注意,这里使用了人脸检测器和人脸关键点检测器来检测人脸和关键点,你需要提前下载对应的模型文件,并将其路径传递给相应的变量。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券