Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java OpenCV로 이미지에 텍스트 추가하기 – putText() 메서드 완벽 가이드

OpenCV에서는 org.opencv.imgproc.Imgproc 클래스가 제공하는 putText() 메서드를 사용하여 이미지 위에 텍스트를 손쉽게 그릴 수 있습니다. 이 메서드는 지정한 문자열을 이미지의 원하는 위치에 렌더링하며, 다음과 같은 매개변수들을 받습니다.

  • 원본 이미지를 담고 있는 Mat 객체
  • 이미지에 표시할 텍스트를 지정하는 String 객체
  • 텍스트가 그려질 좌표(위치)를 나타내는 Point 객체
  • 텍스트에 적용할 글꼴을 지정하는 정수 상수 (예: FONT_HERSHEY_SIMPLEX)
  • 글꼴 기본 크기에 곱해지는 배율(scale) 값
  • 텍스트 색상을 지정하는 Scalar 객체 (BGR 순서)
  • 텍스트 선의 두께를 지정하는 정수 값

예제 코드

아래 예제는 이미지 파일을 불러온 뒤, 빨간색 텍스트를 지정한 위치에 추가하고 결과를 화면에 출력하는 전체 과정을 보여줍니다.

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class AddingText {
   public static void main(String args[]) throws Exception {
      // OpenCV 핵심 네이티브 라이브러리 로드
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

      // 이미지 파일 읽기
      String file = "D:\\Images\\shapes.jpg";
      Mat src = Imgcodecs.imread(file);

      // putText()에 전달할 인자 준비
      String text = "JavaFX 2D shapes";          // 표시할 텍스트
      Point position = new Point(170, 280);       // 텍스트 위치 (x, y)
      Scalar color = new Scalar(0, 0, 255);       // 색상 (BGR: 빨간색)
      int font = Imgproc.FONT_HERSHEY_SIMPLEX;    // 글꼴 종류
      int scale = 1;                              // 글꼴 크기 배율
      int thickness = 3;                          // 선 두께

      // 이미지에 텍스트 추가
      Imgproc.putText(src, text, position, font, scale, color, thickness);

      // 결과 이미지 출력
      HighGui.imshow("Contours operation", src);
      HighGui.waitKey();
   }
}

입력 이미지

Java OpenCV로 이미지에 텍스트 추가하기 – putText() 메서드 완벽 가이드

실행 결과

Java OpenCV로 이미지에 텍스트 추가하기 – putText() 메서드 완벽 가이드

정리

putText() 메서드는 위치, 글꼴, 크기, 색상, 두께 등을 자유롭게 조절할 수 있어 워터마크 삽입, 이미지 라벨링, OCR 전처리 결과 시각화 등 다양한 이미지 처리 작업에 활용할 수 있습니다. 필요에 따라 글꼴 상수(FONT_HERSHEY_PLAIN, FONT_HERSHEY_DUPLEX 등)와 배율 값을 변경하여 원하는 스타일의 텍스트를 구현해 보세요.