이미지에 번역된 문자 출력하기
이미지 위에 바운딩 박스를 그려 불투명한 색으로 채우고 그 위에 번역된 문자를 출력해 봅니다. pillow 패키지를 사용할 것입니다.
비주얼 스튜디오 코드에서 새로운 파일을 만들고, 파일명을 'step_3_3.py'로 지정하세요. 다음 코드를 입력한 뒤 대화형 창에서 실행하세요. 이미지 위에 바운딩 박스와 번역 결과가 표시됩니다.
from pathlib import Path
from PIL import Image, ImageDraw, ImageFont # 02
from step_1 import IN_DIR, OUT_DIR
from step_3_2 import read_text_translated
OUT_3_3 = OUT_DIR / f"{Path(__file__).stem}.jpg"
PROB = 0.75
def read_text_and_fill_area(path: Path):
parsed = read_text_translated(path) # 문자 인식 및 번역 결과 저장
img = Image.open(path)
draw = ImageDraw.Draw(img, "RGBA") # 알파 채널 사용 가능 # 12
font = ImageFont.truetype(IN_DIR / "Pretendard-Bold.ttf", size=60) # 13
for row in parsed:
bbox, text, prob = row
box = [(x, y) for x, y in bbox]
draw.polygon(
box,
fill=(255, 0, 0, 100) if prob >= PROB else (0, 0, 255, 100) # 19
)
draw.text(xy=box[0], text=text, fill=(255, 255, 255), font=font) # 21
img.save(OUT_3_3)
if __name__ == "__main__":
path = IN_DIR / "ocr.jpg"
read_text_and_fill_area(path)
[실행결과]

02 pillow 패키지의 ImageFont 모듈을 불러옵니다. 폰트 객체 생성에 사용합니다.
12 ImageDraw 객체 생성 시 RGBA 모드를 사용해서 알파 채널을 사용한 불투명도를 적용할 수 있게 합니다.
13 Font 객체를 생성합니다.
19 매개변수 fill에 색상 정보를 전달해서 인식한 문자의 좌표 영역에 색을 채웁니다.
21 함수 text()를 사용하여 번역된 문자를 출력합니다. 매개변수 xy에 box[0]을 전달하여 문자가 바운딩 박스의 첫 번째 좌표, 즉 왼쪽 상단에 출력되도록 위치를 지정합니다.
'프로그래밍 언어 > Python' 카테고리의 다른 글
| 웹상의 동작 자동화하기 (1) | 2026.01.24 |
|---|---|
| 번역 기능이 추가된 문자 인식 웹 앱 만들기 (0) | 2026.01.21 |
| 외국어 번역 함수 만들기 (0) | 2026.01.15 |
| DeepL 번역 기능 추가하기 (0) | 2026.01.12 |
| 문자 인식 웹 앱 만들기 (0) | 2026.01.09 |