본문 바로가기
Python/OpenCV

[OpenCV] putText 파라미터

by hotelshoe 2022. 1. 3.
반응형

OpenCV의 기초적인 함수 중 텍스트를 이미지 혹은 영상에 출력하는 putText

이번 포스팅을 통해 putText의 파라미터를 알아보고 활용해보는 테스트를 해보겠습니다.


기본적으로 다음과 같은 파라미터들이 있으며, 정리하자면 다음과 같습니다.

cv2.putText(image, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
image 텍스트가 쓰여질 이미지 변수 입니다. 영상의 경우 프레임 입니다.
text 쓰여질 텍스트를 입력합니다.
org 텍스트 좌표를 지정합니다. 일반적인 x, y 좌표를 사용해 입력하면 됩니다.
디폴트 값은 org로 텍스트를 이미지의 오른쪽 하단에 쓰이도록 합니다.
font 폰트의 종류를 입력합니다. 해당 종류는 다음과 같으며 자세한 표기는 밑에 이미지로 첨부합니다.
FONT_ITALIC
FONT_HERSHEY
FONT_HERSHEY_COMPLEX
FONT_HERSHEY_COMPLEX_SMALL
FONT_HERSHEY_DUPLEX
FONT_HERSHEY_SCRIPT_COMPLEX
FONT_HERSHEY_SCRIPT_SIMPLEX
FONT_HERSHEY_SIMPLEX
FONT_HERSHEY_TRIPLEX
fontscale 폰트의 크기를 지정합니다. 필요에 맞게 일반적인 상수 값을 입력하면 됩니다.
color 폰트의 생상을 지정합니다. 값은 RGB 값과 같이 (0, 0, 0) ~ (255, 255, 255) 이며 주의할 점은
RGB의 순서가 아닌 'B' - 'G' - 'R' 의 순서입니다.
lineType 폰트의 라인 타입을 지정합니다. 디폴트 값은 Line_8이며 그 종류는 다음과 같습니다.
Line_8
Line_4
Line_AA
bottomLeftOrigin org 사용 옵션으로 두 값에 따라 다음과 같이 적용됩니다.
True : 좌측 하단
False : 좌측 상단

font 참조

 


 

소스 코드

cv2.putText(image.jpg, "Text" , (10,10), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,255,0), 2)

기본적인 텍스트 입력 코드

밑에 직접 적용한 예제 코드도 첨부 합니다.

 

import cv2
import numpy as np

image = np.full(shape=(600, 800, 3), fill_value=255, dtype=np.uint8)

font_italic = "FONT_ITALIC"
font_hershey_plain = "FONT_HERSHEY_PALIN"
font_hershey_complex = "FONT_HERSHEY_COMPLEX"
font_hershey_complex_small = "FONT_HERSHEY_COMPLEX_SMALL"
font_hershey_duplex = "FONT_HERSHEY_DUPLEX"
font_hershey_script_complex = "FONT_HERSHEY_SCRIPT_COMPLEX" 
font_hershey_script_simplex = "FONT_HERSHEY_SCRIPT_SIMPLEX"
font_hershey_simplex = "FONT_HERSHEY_SIMPLEX"
font_hershey_triplex = "FONT_HERSHEY_TRIPLEX"

cv2.putText(image, font_italic, (50,50), cv2.FONT_ITALIC, 1, (255,0,0), 2)
cv2.putText(image, font_hershey_plain, (50,100), cv2.FONT_HERSHEY_PLAIN, 2, (0,255,0), 2)
cv2.putText(image, font_hershey_complex, (50,150), cv2.FONT_HERSHEY_COMPLEX, 1, (0,0,255), 2)
cv2.putText(image, font_hershey_complex_small, (50,200), cv2.FONT_HERSHEY_COMPLEX_SMALL, 1, (255,255,255), 2)
cv2.putText(image, font_hershey_duplex, (50,250), cv2.FONT_HERSHEY_DUPLEX, 1, (255,255,0), 2)
cv2.putText(image, font_hershey_script_complex, (50,300), cv2.FONT_HERSHEY_SCRIPT_COMPLEX, 1, (255,0,255), 2)
cv2.putText(image, font_hershey_script_simplex, (50,350), cv2.FONT_HERSHEY_SCRIPT_SIMPLEX, 1, (0,255,255), 2)
cv2.putText(image, font_hershey_simplex, (50,400), cv2.FONT_HERSHEY_SIMPLEX, 1, (51,102,0), 2)
cv2.putText(image, font_hershey_triplex, (50,450), cv2.FONT_HERSHEY_TRIPLEX, 1, (0,153,255), 2)


cv2.imshow("SAMPLE IMAGE", image)
cv2.waitKey()
cv2.destroyAllWindows()

출력 결과는 위의 폰트 예시 이미지를 출력하게 됩니다.

반응형

댓글