[python] 파이썬 moviepy로 동영상 모션 트래킹하기
이번 글에서는 파이썬의 moviepy
라이브러리를 사용하여 동영상에서 모션 트래킹을 어떻게 수행하는지 알아보겠습니다. moviepy
는 동영상 편집 작업을 쉽게 수행할 수 있는 파이썬 라이브러리입니다.
필요한 패키지 설치하기
먼저 moviepy
를 사용하기 위해 필요한 패키지를 설치해야 합니다. 다음 명령을 사용하여 패키지를 설치합니다.
pip install moviepy
동영상 모션 트래킹 예제
이제 동영상 모션 트래킹에 대한 예제를 살펴보겠습니다. 아래의 코드는 moviepy
를 사용하여 동영상에서 물체의 움직임을 추적하는 예제입니다.
from moviepy.editor import VideoFileClip
import cv2
def track_motion(video_path):
# 비디오 파일 불러오기
video = VideoFileClip(video_path)
# 비디오 트래킹을 위한 객체 생성하기
tracker = cv2.TrackerCSRT_create()
# 첫 번째 프레임에서 모션을 추적할 물체를 선택합니다.
frame = video.get_frame(0)
bbox = cv2.selectROI(frame, False)
# 트래커 초기화
tracker.init(frame, bbox)
# 모든 프레임에 대해 모션 추적 수행하기
for frame in video.iter_frames():
# 현재 프레임에서 모션 추적 수행
success, bbox = tracker.update(frame)
if success:
# 추적 결과를 표시
point1 = (int(bbox[0]), int(bbox[1]))
point2 = (int(bbox[0] + bbox[2]), int(bbox[1] + bbox[3]))
cv2.rectangle(frame, point1, point2, (0, 255, 0), 2)
# 결과 동영상에 현재 프레임 추가
video_writer.write_frame(frame)
video_writer.close()
위의 코드를 실행하면 동영상에서 선택한 물체를 추적하는 모션 트래킹 결과를 얻을 수 있습니다. 이 코드는 cv2.TrackerCSRT_create()
를 사용하여 tracker
객체를 생성한 다음, tracker.init()
를 통해 초기화합니다. 그 후, tracker.update()
를 사용하여 각 프레임에서 모션을 추적합니다.
실행하기
위의 예제 코드를 실행하기 위해서는 다음과 같은 단계를 따르면 됩니다.
track_motion
함수에 동영상 파일 경로를 전달하여 동영상 모션 트래킹을 수행합니다.video_writer
객체를 사용하여 추적 결과를 저장할 동영상 파일을 생성합니다.- 추적 결과가 저장된 동영상 파일을 열어서 확인합니다.
결론
파이썬의 moviepy
라이브러리를 사용하여 동영상에서 모션 트래킹을 수행하는 방법에 대해 알아보았습니다. moviepy
를 사용하면 간편하고 효율적으로 동영상 편집 작업을 할 수 있습니다. 자세한 내용은 공식 문서를 참고하시기 바랍니다.