[python] OpenCV를 사용하여 이미지에서 동영상에서 텍스트 읽기

이미지나 동영상 속의 텍스트를 읽는 것은 컴퓨터 비전 분야에서 매우 중요한 작업입니다. 이번에는 Python과 OpenCV를 사용하여 이미지 또는 동영상에서 텍스트를 읽는 방법을 알아보겠습니다.

필요한 패키지 설치하기

먼저, OpenCV 패키지를 설치해야 합니다. 아래의 명령어를 사용하여 설치할 수 있습니다.

pip install opencv-python

이미지에서 텍스트 읽기

이미지에서 텍스트를 읽기 위해서는 Tesseract OCR 엔진을 설치해야 합니다. Tesseract OCR은 텍스트를 인식하기 위한 강력한 오픈 소스 엔진입니다. 아래의 명령어를 사용하여 설치할 수 있습니다.

pip install pytesseract

설치가 완료되었다면, 다음과 같이 코드를 작성하여 이미지에서 텍스트를 읽을 수 있습니다.

import cv2
import pytesseract

# 이미지 불러오기
image = cv2.imread('image.png')

# 이미지를 그레이스케일로 변환
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 이미지에서 텍스트 읽기
text = pytesseract.image_to_string(gray)

# 결과 출력
print(text)

위의 코드에서 image.png는 읽고자 하는 이미지 파일의 경로로 바꿔주어야 합니다. 코드를 실행하면 이미지에서 추출된 텍스트가 출력됩니다.

동영상에서 텍스트 읽기

동영상에서 텍스트를 읽기 위해서는 이미지 스트림에서 프레임을 읽은 후 텍스트를 추출해야 합니다. 아래 코드는 동영상에서 프레임을 읽고 텍스트를 추출하기 위한 예시입니다.

import cv2
import pytesseract

# 동영상 불러오기
cap = cv2.VideoCapture('video.mp4')

while cap.isOpened():
    ret, frame = cap.read()
    
    if not ret:
        break
    
    # 프레임을 그레이스케일로 변환
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    
    # 프레임에서 텍스트 읽기
    text = pytesseract.image_to_string(gray)
    
    # 결과 출력
    print(text)
    
    # 'q' 키를 누르면 종료
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 자원 해제
cap.release()
cv2.destroyAllWindows()

위의 코드에서 video.mp4는 읽고자 하는 동영상 파일의 경로로 바꿔주어야 합니다. 코드를 실행하면 동영상에서 추출된 프레임의 텍스트가 실시간으로 출력됩니다.

이제 Python과 OpenCV를 사용하여 이미지나 동영상 속의 텍스트를 읽는 방법을 알게 되었습니다. 이러한 기술은 영상 처리, 광학 문자 인식 및 자동화 등 다양한 분야에서 유용하게 사용될 수 있습니다.

참고 자료