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

Java OpenCV에서 화살표 선(arrowedLine)을 그리는 방법

Java OpenCV 라이브러리의 org.opencv.imgproc 패키지에는 Imgproc 클래스가 포함되어 있습니다. 이 클래스는 입력 이미지를 처리하는 다양한 메서드를 제공하며, 이미지 위에 기하학적 도형을 그릴 수 있는 메서드들도 함께 포함하고 있습니다.

arrowedLine() 메서드란?

이미지에 화살표 선을 그리려면 Imgproc 클래스의 arrowedLine() 메서드를 호출하면 됩니다. 이 메서드는 다음과 같은 매개변수를 받습니다.

  • Mat 객체 — 선을 그릴 대상 이미지를 나타냅니다.

  • Point 객체 2개 — 선의 시작점과 끝점 좌표를 나타냅니다.

  • Scalar 객체 — 선의 색상을 나타내며, BGR 순서로 값을 지정합니다.

  • 정수 값(int) — 선의 두께를 나타내며, 기본값은 1입니다.

예제 코드

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

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

      // 소스 이미지를 Mat 객체로 읽어오기
      Mat src = Imgcodecs.imread("D:\\images\\blank.jpg");

      // 화살표 선 그리기
      Point start = new Point(100, 200);
      Point end = new Point(500, 200);
      Scalar color = new Scalar(64, 64, 64);
      int thickness = 10;

      Imgproc.arrowedLine(src, start, end, color, thickness);

      // 결과 이미지 저장 및 화면에 표시
      Imgcodecs.imwrite("arrowed_line.jpg", src);
      HighGui.imshow("Drawing an arrowed line", src);
      HighGui.waitKey();
   }
}

코드 설명

위 예제에서는 시작점 (100, 200)에서 끝점 (500, 200)까지 회색 계열의 BGR 색상(64, 64, 64)으로 두께 10인 화살표 선을 그립니다. 화살표 머리는 자동으로 끝점 방향에 생성됩니다.

실행 결과

위 프로그램을 실행하면 다음과 같이 화살표 선이 그려진 이미지 창이 표시됩니다.

Java OpenCV에서 화살표 선(arrowedLine)을 그리는 방법