머신러닝 & 딥러닝/컴퓨터 비전

[OpenCV with Python] - 04. 텍스트 입력해보기

by seokii 2021. 9. 4.
728x90
반응형

코드 및 이미지 : https://github.com/Seokii/Study_OpenCV

 

GitHub - Seokii/Study_OpenCV: study about OpenCV

study about OpenCV. Contribute to Seokii/Study_OpenCV development by creating an account on GitHub.

github.com

 

이번에는 OpenCV를 활용하여 텍스트를 입력해보도록 하겠습니다.

사용할 코드는 다음과 같습니다.

 

cv2.putText(img, text, org, fontFace, fontScale, color, thickness, lineType, bottomLeftOrigin) -> img

  • img : 문자열을 작성할 대상 이미지 혹은 영상
  • text : 작성할 문자열
  • org : 문자열의 시작 좌표, 문자열에서 가장 왼쪽 하단을 의미합니다.
  • fontFace : 문자열의 폰트
    • cv2.FONT_HERSHEY_SIMPLEX , 값: 0, 중간 크기 산세리프 폰트
    • cv2.FONT_HERSHEY_PLAIN, 값: 1, 작은 크기 산세리프 폰트
    • cv2.FONT_HERSHEY_DUPLEX, 값: 2, 2줄 산세리프 폰트
    • cv2.FONT_HERSHEY_COMPLEX, 값: 3, 중간 크기 세리프 폰트
    • cv2.FONT_HERSHEY_TRIPLEX, 값: 4, 3줄 세리프 폰트
    • cv2.FONT_HERSHEY_COMPLEX_SMALL, 값: 5, COMPLEX 보다 작은 크기
    • cv2.FONT_HERSHEY_SCRIPT_SIMPLEX, 값: 6, 필기체 스타일 폰트
    • cv2.FONT_HERSHEY_SCRIPT_COMPLEX, 값: 7, 복잡한 필기체 스타일
    • cv2.FONT_ITALIC, 값: 16, 이탤릭체를 위한 플래그
  • fontScale : 문자열의 크기 확대 비율
  • color : 문자열 색상
  • thickness : 문자열 굵기
  • lineType : 문자열 선의 형태
  • bottomLeftOrigin : 이미지/영상의 원점 좌표 설정 (True : 좌하단 왼쪽, False : 좌상단)

 

주피터 노트북으로 구현하기

import numpy as np
import cv2

- 필요한 라이브러리를 불러옵니다.

 

color1 = (98, 17, 0)
color2 = (155,200,230)
color3 = (254, 1, 15)

- 색상 변수를 지정해줍니다. (임의의 숫자로 설정했습니다.)

 

img = np.zeros((500, 500, 3), np.uint8)
img.fill(255)

- 3채널의 정수형 행렬을 생성하고, fill() 함수로 행렬의 색상을 흰색으로 지정했습니다.

 

cv2.putText(img, 'SEOKII BLOG', (50,50), cv2.FONT_HERSHEY_SIMPLEX, 1, color1, 2, cv2.LINE_AA)
cv2.putText(img, 'SEOKII BLOG', (50,100), 1, 1, color2, 2, cv2.LINE_AA)
cv2.putText(img, 'SEOKII BLOG', (50,150), 2, 2, color3, 2, cv2.LINE_AA)
cv2.putText(img, 'SEOKII BLOG', (50,200), 3, 2, color1, 2, cv2.LINE_AA)
cv2.putText(img, 'SEOKII BLOG', (50,250), 4, 2, color2, 2, cv2.LINE_AA)
cv2.putText(img, 'SEOKII BLOG', (50,300), 5, 2, color3, 2, cv2.LINE_AA)
cv2.putText(img, 'SEOKII BLOG', (50,350), 6, 2, color1, 2, cv2.LINE_AA)
cv2.putText(img, 'SEOKII BLOG', (50,400), cv2.FONT_HERSHEY_SCRIPT_COMPLEX, 2, color2, 2, cv2.LINE_AA)

cv2.imshow('input_Text', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

- 위의 코드 설명을 바탕으로, 다양한 글씨체와 색상을 적용했습니다. 결과는 아래와 같습니다.

 

 

이상으로 OpenCV를 활용하여 텍스트를 입력하는 방법이었습니다.

 

 

728x90
반응형

댓글