OpenCV 이미지에 텍스트 넣기
이 튜토리얼에서는 Python에서 OpenCV의 putText()
함수를 사용하여 이미지에 텍스트를 삽입하는 방법에 대해 설명합니다.
Opencv의 putText()
함수를 사용하여 Python에서 이미지에 텍스트 넣기
OpenCV의 putText()
함수를 사용하여 원하는 색상, 글꼴 크기, 글꼴 모음 및 위치로 이미지에 텍스트를 넣을 수 있습니다. putText()
함수의 첫 번째 인수는 텍스트를 넣을 이미지입니다.
두 번째 인수는 이미지에 넣을 텍스트(문자열)입니다. 세 번째 인수는 텍스트를 넣을 위치이며 기본적으로 위치 원점은 이미지의 왼쪽 상단입니다.
위치 값은 첫 번째 정수가 x축 위치를 정의하고 두 번째 정수가 y축 위치를 정의하는 두 개의 정수를 사용하여 설정해야 합니다.
예를 들어 위치를 (10,20)으로 설정하면 이미지의 왼쪽 상단에 있는 원점에서 x축으로 10픽셀, y축으로 20픽셀 떨어진 곳에 텍스트가 배치됩니다.
네 번째 인수는 cv2.FONT_HERSHEY_SIMPLEX
와 같은 OpenCV의 기본 글꼴 패밀리에서 사용할 수 있는 글꼴 패밀리입니다. 다섯 번째 인수는 글꼴 크기 또는 글꼴 크기이며 해당 값은 데이터 유형이 double이어야 합니다.
여섯 번째 인수는 텍스트의 색상이며 값은 흰색의 경우 (255,255,255)와 같은 RGB 3색이어야 합니다.
위의 모든 인수는 필수이며 하나 이상의 인수가 누락되면 오류가 발생합니다. 또한 우리가 설정할 수 있는 3개의 선택적 인수가 있으며 선택적 인수의 값을 설정하지 않으면 기본값이 사용됩니다.
첫 번째 선택적 인수는 선의 굵기이며 값은 기본적으로 정수여야 합니다. 두 번째 선택적 인수는 기본적으로 cv2.LINE_8
로 설정되는 선 유형 또는 스타일입니다.
세 번째 선택적 인수는 true인 경우 왼쪽 하단 위치를 원점으로 설정하는 데 사용되지만 기본적으로 false로 설정되며 텍스트를 뒤집습니다.
예를 들어, numpy
라이브러리의 zeros() 함수를 사용하여 검은색 512x512 이미지를 만든 다음 putText()
함수를 사용하여 임의의 텍스트를 입력해 보겠습니다. 아래 코드를 참조하십시오.
import numpy as np
import cv2
img = np.zeros((512, 512, 3), np.uint8)
font = cv2.FONT_HERSHEY_SIMPLEX
position = (10, 500)
fontScale = 2
fontColor = (255, 255, 0)
cv2.putText(img, "Hello World!", position, font, fontScale, fontColor)
cv2.imshow("img", img)
cv2.waitKey(0)
출력:
위의 예에서 검은색 이미지를 사용했지만 imread()
함수를 사용하여 모든 컬러 이미지를 사용할 수도 있습니다. 선택적 인수의 값을 변경할 수도 있습니다.
예를 들어 선의 굵기를 3으로 변경해 보겠습니다. antialiased
선에 대해 선 유형을 cv2.LINE_AA
로 변경하고 마지막 인수를 사용하여 텍스트를 뒤집고 true로 설정해 보겠습니다. 아래 코드를 참조하십시오.
import numpy as np
import cv2
img = np.zeros((512, 512, 3), np.uint8)
font = cv2.FONT_HERSHEY_SIMPLEX
position = (10, 450)
fontScale = 2
fontColor = (255, 255, 0)
cv2.putText(
img, "Hello World!", position, font, fontScale, fontColor, 3, cv2.LINE_AA, True
)
cv2.imshow("img", img)
cv2.waitKey(0)
출력:
코드에서 텍스트가 보이도록 다시 텍스트 위치를 설정해야 함을 볼 수 있습니다. OpenCV에서 지원하는 글꼴 패밀리에 대한 자세한 내용은 이 링크를 확인하십시오.