[python] OpenCV를 사용하여 이미지에서 동영상에서 경계 상자 그리기
OpenCV(Open Source Computer Vision)는 컴퓨터 비전 및 이미지 처리 작업을 위한 라이브러리입니다. 이 라이브러리를 사용하여 이미지나 동영상에서 객체를 인식하고 객체 주위에 경계 상자(Bounding Box)를 그릴 수 있습니다.
여기서는 Python과 OpenCV를 사용하여 이미지에서 동영상에서 경계 상자를 그리는 예제 코드를 작성해 보겠습니다.
준비물
작업을 시작하기 전에 다음을 준비해야 합니다.
- Python 3.x
- 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()
코드 설명
cv2.VideoCapture
를 사용하여 이미지 또는 동영상 파일을 엽니다.draw_bounding_box
함수를 정의합니다. 이 함수는 주어진 프레임에 경계 상자를 그립니다.- 프레임을 읽고 경계 상자를 그립니다.
- 프레임을 표시합니다.
- ‘q’ 키를 누를 때까지 반복합니다.
- 사용한 리소스를 해제합니다.
여기서 주의해야 할 점은 x
, y
, width
, height
매개변수를 적절한 값으로 설정해야 한다는 것입니다. 경계 상자가 정확하게 그려지기 위해서는 객체를 인식하기 위한 알고리즘을 사용하여 적절한 경계 상자 정보를 가져와야 합니다.
마무리
이 예제에서는 OpenCV를 사용하여 이미지나 동영상에서 경계 상자를 그리는 방법을 소개했습니다. 이 기술을 활용하여 객체 인식, 추적, 영상 분석 등 다양한 작업을 수행할 수 있습니다.
더 자세한 내용은 OpenCV 공식 문서를 참조하시기 바랍니다.