[python] OpenCV를 사용하여 이미지에서 동영상에서 경계 상자 그리기

OpenCV(Open Source Computer Vision)는 컴퓨터 비전 및 이미지 처리 작업을 위한 라이브러리입니다. 이 라이브러리를 사용하여 이미지나 동영상에서 객체를 인식하고 객체 주위에 경계 상자(Bounding Box)를 그릴 수 있습니다.

여기서는 Python과 OpenCV를 사용하여 이미지에서 동영상에서 경계 상자를 그리는 예제 코드를 작성해 보겠습니다.

준비물

작업을 시작하기 전에 다음을 준비해야 합니다.

설치

먼저 OpenCV를 설치해야 합니다. 다음 명령어를 사용하여 OpenCV를 설치하세요.

pip install opencv-python

예제 코드

이제 OpenCV를 사용하여 이미지에서 동영상에서 경계 상자를 그리는 예제 코드를 작성해 보겠습니다.

import cv2

# 이미지 파일 또는 동영상 파일 경로
file_path = 'path/to/file'

# 이미지 또는 동영상 파일 읽기
cap = cv2.VideoCapture(file_path)

# 경계 상자 그리기 함수 정의
def draw_bounding_box(frame, x, y, width, height):
    cv2.rectangle(frame, (x, y), (x + width, y + height), (0, 255, 0), 2)

while True:
    # 동영상 프레임 읽기
    ret, frame = cap.read()

    if not ret:
        break

    # 경계 상자 그리기
    draw_bounding_box(frame, x, y, width, height)

    # 프레임 출력
    cv2.imshow('Frame', frame)

    # 'q' 키를 누를 때까지 계속 반복
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 사용한 리소스 해제
cap.release()
cv2.destroyAllWindows()

코드 설명

  1. cv2.VideoCapture를 사용하여 이미지 또는 동영상 파일을 엽니다.
  2. draw_bounding_box 함수를 정의합니다. 이 함수는 주어진 프레임에 경계 상자를 그립니다.
  3. 프레임을 읽고 경계 상자를 그립니다.
  4. 프레임을 표시합니다.
  5. ‘q’ 키를 누를 때까지 반복합니다.
  6. 사용한 리소스를 해제합니다.

여기서 주의해야 할 점은 x, y, width, height 매개변수를 적절한 값으로 설정해야 한다는 것입니다. 경계 상자가 정확하게 그려지기 위해서는 객체를 인식하기 위한 알고리즘을 사용하여 적절한 경계 상자 정보를 가져와야 합니다.

마무리

이 예제에서는 OpenCV를 사용하여 이미지나 동영상에서 경계 상자를 그리는 방법을 소개했습니다. 이 기술을 활용하여 객체 인식, 추적, 영상 분석 등 다양한 작업을 수행할 수 있습니다.

더 자세한 내용은 OpenCV 공식 문서를 참조하시기 바랍니다.