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

Java OpenCV로 원 그리기 – Imgproc.circle() 메서드 사용법 완벽 가이드

Java용 OpenCV 라이브러리의 org.opencv.imgproc 패키지에는 이미지 처리에 필요한 다양한 기능을 제공하는 Imgproc 클래스가 포함되어 있습니다.

이미지 위에 원을 그리려면 이 클래스의 circle() 메서드를 호출하면 됩니다. 이 메서드는 아래와 같은 매개변수를 받습니다.

  • 원이 그려질 대상 이미지를 나타내는 Mat 객체

  • 원의 중심 좌표를 나타내는 Point 객체

  • 원의 반지름을 나타내는 정수(int)

  • 원의 색상(BGR 형식)을 나타내는 Scalar 객체

  • 원의 선 두께를 나타내는 정수(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.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

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

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

        // 원 그리기
        Point center = new Point(300, 200);   // 원의 중심 좌표
        int radius = 100;                     // 반지름
        Scalar color = new Scalar(64, 64, 64); // BGR 색상
        int thickness = 10;                   // 선 두께

        Imgproc.circle(src, center, radius, color, thickness);

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

코드 설명

위 예제 코드의 동작 흐름을 단계별로 살펴보면 다음과 같습니다.

1. 라이브러리 로드

System.loadLibrary(Core.NATIVE_LIBRARY_NAME)을 호출하여 OpenCV의 네이티브 라이브러리를 먼저 로드해야 합니다. 이 과정이 없으면 OpenCV 관련 메서드 호출 시 오류가 발생합니다.

2. 이미지 불러오기

Imgcodecs.imread() 메서드를 사용하여 지정된 경로의 이미지 파일을 Mat 객체로 읽어옵니다. 이 Mat 객체가 원을 그릴 캔버스 역할을 합니다.

3. circle() 메서드로 원 그리기

중심 좌표(300, 200), 반지름 100, 회색 계열의 BGR 색상(64, 64, 64), 두께 10으로 설정한 후 Imgproc.circle()을 호출하여 원을 그립니다.

4. 결과 저장 및 출력

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

실행 결과

위 프로그램을 실행하면 빈 이미지 위에 지정한 위치와 크기대로 원이 그려진 결과가 새 창에 표시되며, 동일한 이미지가 circle.jpg 파일로 저장됩니다.

Java OpenCV로 원 그리기 – Imgproc.circle() 메서드 사용법 완벽 가이드