Java용 OpenCV 라이브러리의 org.opencv.imgproc 패키지에는 Imgproc 클래스가 포함되어 있습니다. 이미지 위에 사각형을 그리려면 이 클래스의 rectangle() 메서드를 호출하면 됩니다.
이 메서드는 다음과 같은 매개변수를 받습니다.
사각형을 그릴 대상 이미지를 나타내는 Mat 객체
그리고자 하는 사각형의 두 꼭짓점(좌상단, 우하단)을 나타내는 두 개의 Point 객체
사각형의 색상(BGR 형식)을 나타내는 Scalar 객체
사각형 테두리의 두께를 나타내는 정수 값 (기본값: 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 DrawingRectangle {
public static void main(String args[]) {
// OpenCV 핵심 네이티브 라이브러리 로드
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
// 소스 이미지를 Mat 객체로 읽어오기
Mat src = Imgcodecs.imread("D:\\images\\blank.jpg");
// 사각형 그리기
Point point1 = new Point(100, 100);
Point point2 = new Point(500, 300);
Scalar color = new Scalar(64, 64, 64);
int thickness = 10;
Imgproc.rectangle(src, point1, point2, color, thickness);
// 결과 이미지 저장 및 화면에 표시
Imgcodecs.imwrite("rectangle_output.jpg", src);
HighGui.imshow("Drawing a rectangle", src);
HighGui.waitKey();
}
}코드 설명
System.loadLibrary(): OpenCV의 네이티브 라이브러리를 로드하여 Java에서 OpenCV 기능을 사용할 수 있도록 준비합니다.Imgcodecs.imread(): 지정된 경로의 이미지 파일을 읽어Mat객체에 저장합니다.Point(100, 100)과Point(500, 300): 사각형의 좌상단과 우하단 꼭짓점 좌표를 정의합니다.Scalar(64, 64, 64): BGR 순서로 회색 계열의 색상을 지정합니다.Imgproc.rectangle(): 정의한 좌표, 색상, 두께를 바탕으로 이미지에 사각형을 그립니다.
실행 결과
위 프로그램을 실행하면 다음과 같은 창이 나타나며, 지정한 위치에 사각형이 그려진 이미지를 확인할 수 있습니다.
