반응형
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()
출력 결과는 위의 폰트 예시 이미지를 출력하게 됩니다.
반응형
'Python > OpenCV' 카테고리의 다른 글
[OpenCV] cvlib 영상 인물 얼굴 모자이크 (0) | 2022.02.07 |
---|---|
[OpenCV] cvlib 이미지 인물 얼굴 모자이크 (0) | 2022.02.07 |
[OpenCV] 광 흐름 탐지 - optical flow detection (0) | 2022.01.03 |
[OpenCV] dlib 영상&캠 얼굴 랜드마크 (face landmark) (0) | 2022.01.03 |
[OpenCV] dlib 이미지 얼굴 랜드마크 (face landmark) (0) | 2022.01.03 |
댓글