Python / / 2022. 2. 5. 13:39

예제] 모션 캡쳐

728x90
반응형

모션 캡쳐 하기

cv2, cvzone 을 이용하여 동영상에 사람의 모습을 캡쳐하는 예제이다.

아래 부분 에러로 인해 시간이 좀걸리긴 걸렸다.

결론은 cvzone을 최신 버전으로 업그레이드 하면 해결된다.

설치한지 며칠되지 않았는데, 그사이에 업데이트가 되면서 예제가 돌아가지 않았다.

차이점은 z항목이 추가 되었다는것이다.

에러가 났던 부분

import cv2
from cvzone.PoseModule import PoseDetector

cap = cv2.VideoCapture("Video.mp4")

detector = PoseDetector()
posList = []

while True:
    ret, img = cap.read()
    img = detector.findPose(img)
    lmList, bboxInfo = detector.findPosition(img)    
    if bboxInfo:
        lmString = ''
        for lm in lmList:            
            lmString += f'{lm[1]},{img.shape[0] - lm[2]},{lm[3]},'            
        posList.append(lmString)        
    
    cv2.imshow("dance", img)
    key = cv2.waitKey(1)
    if key == ord('s'):
        with open("AnimationFile.txt", 'w') as f:
            f.writelines(["%s\n"% item for item in posList])
    if key == 27:
        break
    
cv2.destroyAllWindows

아래 이미지는 원래 예제에서 제공하는 영상을 이용하여 캡쳐한 화면이다.

아래에 있는 이미지는 다른 동영상을 켭쳐한 이미지이다.

다른 점이 있다면, 사각형이 없다는것이다. 이렇게 되면 제대로 캡쳐가 안된다.

아래 동영상 중간에 한번씩 사각형이 나타나는데, 예제 동영상처럼 나오지는 않는다.

 

예제 화면
다른 동영상 캡쳐화면 제공:https://pixabay.com/

 

 

참고 : https://www.youtube.com/watch?v=BtMs0ysTdkM 

 

728x90
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유