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

Java OpenCV 라이브러리로 이미지에 마커(Marker) 그리는 방법

OpenCV에서는 org.opencv.imgproc.Imgproc 클래스가 제공하는 drawMarker() 메서드를 사용하면 이미지 위에 다양한 형태의 마커를 손쉽게 그릴 수 있습니다. 이 메서드는 객체 검출 결과 표시, 관심 영역(ROI) 강조 등 다양한 용도로 활용됩니다.

drawMarker() 메서드의 주요 매개변수

  • img – 마커를 그릴 대상 이미지를 나타내는 Mat 객체입니다.
  • position – 마커를 표시할 위치를 지정하는 Point 객체입니다.
  • color – 마커의 색상을 지정하는 Scalar 객체입니다(BGR 순서).
  • markerType – 마커의 종류를 지정하는 정수 상수입니다. 예: MARKER_SQUARE, MARKER_CROSS, MARKER_STAR 등.
  • size – 마커의 크기를 픽셀 단위로 지정하는 정수 값입니다.
  • thickness – 마커 선의 두께를 지정하는 정수 값입니다.

예제 코드

아래는 이미지 파일을 불러온 뒤, 특정 위치에 사각형 마커를 그리는 전체 예제입니다.

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 DrawingMarkers {
    public static void main(String args[]) throws Exception {
        // OpenCV 핵심 네이티브 라이브러리 로드
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

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

        // 마커의 색상과 위치 설정
        Scalar color = new Scalar(0, 0, 125);   // BGR 값 (붉은 계열)
        Point point = new Point(150, 260);

        // 마커 그리기 (사각형 마커, 크기 150, 두께 8)
        Imgproc.drawMarker(src, point, color, Imgproc.MARKER_SQUARE, 150, 8, Imgproc.LINE_8);

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

입력 이미지

Java OpenCV 라이브러리로 이미지에 마커(Marker) 그리는 방법

실행 결과

위 프로그램을 실행하면 지정한 좌표(150, 260)에 붉은색 사각형 마커가 그려진 이미지가 아래와 같은 창에 표시됩니다.

Java OpenCV 라이브러리로 이미지에 마커(Marker) 그리는 방법

참고 사항

  • 마커 종류는 MARKER_SQUARE(사각형), MARKER_CROSS(십자), MARKER_TILTED_CROSS(기울어진 십자), MARKER_STAR(별), MARKER_DIAMOND(다이아몬드), MARKER_TRIANGLE_UP/DOWN(삼각형) 등으로 변경할 수 있습니다.
  • Scalar의 색상 값은 RGB가 아닌 BGR 순서로 지정해야 하므로 주의해야 합니다.
  • 마커 크기(size)는 마커 전체 길이를 결정하며, thickness 값을 늘리면 더 굵은 선으로 표시됩니다.