Java OpenCV 라이브러리의 org.opencv.imgproc 패키지에는 Imgproc이라는 클래스가 포함되어 있으며 이 클래스는 입력 이미지를 처리하기 위해 resize(), wrapAffine(), filter2D와 같은 다양한 메서드를 제공합니다.
그 외에도 이미지에 기하학적 모양을 그리는 일련의 방법을 제공합니다. 다음은 그 중 일부입니다 -
| 모양 | 방법 및 설명 |
|---|---|
| 타원 | ellipse()를 사용하여 이미지에 타원을 그릴 수 있습니다. 방법. |
| 원 | circle()을 사용하여 이미지에 원을 그릴 수 있습니다. 방법. |
| 사각형 | rectangle()을 사용하여 이미지에 사각형을 그릴 수 있습니다. 방법. |
| 다각형 | polygon()을 사용하여 이미지에 다각형을 그릴 수 있습니다. 방법. |
| 선 | line()을 사용하여 이미지에 선을 그릴 수 있습니다. 방법 |
예시
다음 Java 예제는 빈 OpenCV 이미지에 다양한 모양을 그립니다 -
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Point;
import org.opencv.core.RotatedRect;
import org.opencv.core.Scalar;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.highgui.HighGui;
public class DrawingGeometricalShapes {
public static void main(String args[]) {
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
Mat src = Imgcodecs.imread("D:\\blank.jpg");
Scalar color = new Scalar(0, 0, 120);
//Drawing a Circle
Imgproc.circle(src, new Point(75, 65), 40, color, Imgproc.FILLED);
// Drawing an Ellipse
Imgproc.ellipse(src, new RotatedRect(new Point(330, 60), new Size(100, 65), 180), color, Imgproc.FILLED);
//Drawing a line
Imgproc.line(src, new Point(540,30), new Point(540, 90), color, 5);
//Drawing filled polygon
List<MatOfPoint> list = new ArrayList();
list.add(new MatOfPoint (
new Point(410, 60), new Point(430, 30),
new Point(470, 30), new Point(490, 60),
new Point(470, 100), new Point(430, 100))
);
Imgproc.fillPoly (src, list, color, 8);
//Drawing a Rectangle
Imgproc.rectangle(src, new Point(150, 30), new Point(250, 95),color, Imgproc.FILLED);
HighGui.imshow("Geometrical shapes", src);
HighGui.waitKey();
}
} 출력
