gpt4 book ai didi

python - 使用OpenCV+Python-2.7的全身检测与跟踪

转载 作者:太空狗 更新时间:2023-10-29 19:35:49 25 4
gpt4 key购买 nike

有很多 Material 可用于使用 C++ 执行此操作。我想知道是否有办法在 Python-2.7 中使用 OpenCV 进行全身检测?

给定一个人沿着矢状面行走的视频(相机从行走方向拍摄 90 度),我想界定一个覆盖该人整个 body 的感兴趣区域矩形,并在运动框架中跟踪相同的区域框架。

最佳答案

这是使用 hog 描述符,您可以在 samples/python/peopredetect.py 中找到示例,我使用了 opencv 安装提供的示例视频。

import numpy as np
import cv2


def inside(r, q):
rx, ry, rw, rh = r
qx, qy, qw, qh = q
return rx > qx and ry > qy and rx + rw < qx + qw and ry + rh < qy + qh


def draw_detections(img, rects, thickness = 1):
for x, y, w, h in rects:
# the HOG detector returns slightly larger rectangles than the real objects.
# so we slightly shrink the rectangles to get a nicer output.
pad_w, pad_h = int(0.15*w), int(0.05*h)
cv2.rectangle(img, (x+pad_w, y+pad_h), (x+w-pad_w, y+h-pad_h), (0, 255, 0), thickness)


if __name__ == '__main__':

hog = cv2.HOGDescriptor()
hog.setSVMDetector( cv2.HOGDescriptor_getDefaultPeopleDetector() )
cap=cv2.VideoCapture('vid.avi')
while True:
_,frame=cap.read()
found,w=hog.detectMultiScale(frame, winStride=(8,8), padding=(32,32), scale=1.05)
draw_detections(frame,found)
cv2.imshow('feed',frame)
ch = 0xFF & cv2.waitKey(1)
if ch == 27:
break
cv2.destroyAllWindows()

结果

不太好。还是试试吧 enter image description here

关于python - 使用OpenCV+Python-2.7的全身检测与跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34871294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com