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

Java로 OpenCV에서 선 그리는 방법 완벽 가이드

OpenCV에서 선 그리기 개요

Java용 OpenCV 라이브러리의 org.opencv.imgproc 패키지에는 Imgproc라는 클래스가 포함되어 있습니다. 이미지 위에 선을 그리려면 이 클래스의 line() 메서드를 호출하면 됩니다.

이 메서드는 다음과 같은 매개변수를 받습니다:

  • 선을 그릴 대상 이미지를 나타내는 Mat 객체
  • 선의 시작점과 끝점을 나타내는 두 개의 Point 객체
  • 선의 색상을 나타내는 Scalar 객체 (BGR 순서)
  • 선의 두께를 나타내는 정수값 (기본값: 1)

예제 코드

다음은 흰색 배경 이미지 위에 회색 선을 그리는 전체 예제입니다:

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 DrawingLine {
    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(150, 200);   // 시작 좌표
        Point end = new Point(450, 200);     // 끝 좌표
        Scalar color = new Scalar(64, 64, 64); // BGR 색상 (회색)
        int thickness = 10;                  // 선 두께

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

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

코드 설명

1. 라이브러리 로드

System.loadLibrary(Core.NATIVE_LIBRARY_NAME)을 호출하여 OpenCV 네이티브 라이브러리를 먼저 로드해야 합니다. 이 단계를 생략하면 실행 시 오류가 발생합니다.

2. 좌표와 색상 지정

선의 시작점과 끝점은 각각 Point 객체로 정의합니다. 여기서는 (150, 200)에서 (450, 200)까지 수평선을 그립니다. 색상은 BGR 순서로 지정되며, (64, 64, 64)는 어두운 회색을 의미합니다.

3. 결과 확인

Imgcodecs.imwrite()로 결과 이미지를 파일로 저장하고, HighGui.imshow()로 화면에 표시한 후 HighGui.waitKey()로 창이 닫히지 않도록 유지합니다.

실행 결과

위 프로그램을 실행하면 빈 이미지 위에 지정된 좌표 사이에 두께 10픽셀의 회색 수평선이 그려진 창이 나타납니다.