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인 화살표 선을 그립니다. 화살표 머리는 자동으로 끝점 방향에 생성됩니다.
실행 결과
위 프로그램을 실행하면 다음과 같이 화살표 선이 그려진 이미지 창이 표시됩니다.
