Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để vẽ một hình elip đầy trong OpenCV bằng Java?

Gói org.opencv.imgproc của thư viện Java OpenCV chứa một lớp có tên Imgproc lớp này cung cấp các phương thức khác nhau để xử lý một hình ảnh đầu vào. Nó cung cấp một tập hợp các phương pháp để vẽ các hình dạng hình học trên hình ảnh.

Lớp này cung cấp một phương thức có tên ellipse () bằng cách sử dụng này, bạn có thể vẽ một hình elip trên một hình ảnh, một trong các biến thể của phương pháp này cho phép bạn chỉ định loại đường dưới dạng một trong các tham số bao gồm -

  • A Mat đối tượng đại diện cho hình ảnh mà hình elip sẽ được vẽ trên đó.

  • A RotatedRect đối tượng (Hình elip được vẽ bên trong hình chữ nhật này.)

  • A Vô hướng đối tượng đại diện cho màu của Hình chữ nhật (BGR).

Nếu bạn vượt qua Imgproc.FILLED là tham số mà phương pháp này tạo ra một nhật thực được lấp đầy.

Ví dụ

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.RotatedRect;
import org.opencv.core.Scalar;
import org.opencv.core.Size;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class DrawingFilledEllipse {
   public static void main(String args[]) {
      // Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      //Reading the source image in to a Mat object
      Mat src = Imgcodecs.imread("D:\\images\\blank.jpg");
      //Drawing an ellipse
      RotatedRect box = new RotatedRect(new Point(300, 200), new Size(260, 180),180);
      Scalar color = new Scalar(64, 64, 64);
      int thickness = Imgproc.FILLED;
      Imgproc.ellipse(src, box, color, thickness);
      //Saving and displaying the image
      Imgcodecs.imwrite("arrowed_line.jpg", src);
      HighGui.imshow("Drawing an ellipse", src);
      HighGui.waitKey();
   }
}

Đầu ra

Khi thực thi, chương trình trên tạo ra cửa sổ sau -

Làm thế nào để vẽ một hình elip đầy trong OpenCV bằng Java?