[python] PySimpleGUI에서 이미지 인식 및 판독 기능 사용하기

PySimpleGUI는 사용자 인터페이스를 만들기 위한 파이썬 라이브러리입니다. 이 라이브러리를 사용하여 이미지 인식 및 판독 기능을 구현하는 방법에 대해 알아보겠습니다.

1. 이미지 인식을 위한 라이브러리 설치

이미지 인식을 위해서는 OpenCV 라이브러리를 설치해야 합니다. 아래의 명령어를 사용하여 OpenCV를 설치합니다.

pip install opencv-python

2. 이미지 선택 기능 추가하기

먼저, PySimpleGUI를 사용하여 이미지를 선택할 수 있는 기능을 추가해야 합니다. 아래의 코드를 사용하여 이미지 선택 버튼을 생성합니다.


import PySimpleGUI as sg

layout = [
    [sg.Text("이미지 선택:")],
    [sg.Input(key="-FILE-", enable_events=True), sg.FileBrowse()],
    [sg.Image(key="-IMAGE-")],
    [sg.Button("인식")],
]

window = sg.Window("이미지 인식", layout)

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    if event == "-FILE-":
        filename = values["-FILE-"]
        if filename:
            img = cv2.imread(filename)
            window["-IMAGE-"].update(data=cv2.imencode(".png", img)[1].tobytes())

window.close()

3. 이미지 인식 및 판독 기능 추가하기

이제 이미지를 선택한 후 “인식” 버튼을 누르면 이미지를 판독하는 기능을 추가해 보겠습니다. 아래의 코드를 이전의 코드에 추가합니다.

import pytesseract

def recognize_text(image):
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    text = pytesseract.image_to_string(gray)
    return text

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    if event == "-FILE-":
        filename = values["-FILE-"]
        if filename:
            img = cv2.imread(filename)
            window["-IMAGE-"].update(data=cv2.imencode(".png", img)[1].tobytes())
    if event == "인식":
        text = recognize_text(img)
        sg.popup("인식 결과", text)

위의 코드에서 pytesseract 모듈은 이미지에서 텍스트를 추출하는 데 사용됩니다. 해당 모듈을 사용하기 위해서는 추가적인 설치가 필요합니다. 아래의 명령어로 pytesseract를 설치합니다.

pip install pytesseract

4. 실행 및 결과 확인하기

모든 코드를 작성한 후 스크립트를 실행해보세요. 이미지를 선택하고 “인식” 버튼을 누르면 선택한 이미지에서 텍스트가 추출되어 결과가 팝업 창으로 나타납니다.

이제 PySimpleGUI를 사용하여 이미지 인식 및 판독 기능을 쉽게 구현할 수 있습니다. 이를 활용하여 다양한 프로젝트에 적용해보세요.

참고 자료