Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

OpenCV Java 라이브러리를 사용하여 이미지에 기하학적 모양을 그리는 방법은 무엇입니까?

<시간/>

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

출력

OpenCV Java 라이브러리를 사용하여 이미지에 기하학적 모양을 그리는 방법은 무엇입니까?