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(); } }
출력