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

Làm thế nào để vẽ polylines 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 nhiều phương thức khác nhau để xử lý hình ảnh đầu vào như resize (), filter2D, v.v. Ngoài những phương thức này, nó còn cung cấp một bộ phương pháp để vẽ các hình dạng hình học trên hình ảnh.

Trong số chúng để vẽ một đa giác, bạn cần gọi đa đường () phương thức của lớp này. Phương thức này chấp nhận các tham số sau -

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

  • Đối tượng A-List chứa các đối tượng của kiểu MatOfPoint.

  • Một tham số của kiểu boolean chỉ định liệu các đường nhiều có được bao kín hay không.

  • Đối tượng Vô hướng đại diện cho màu của đa giác.

  • Một số nguyên đại diện cho độ dày của đa giác (mặc định:1).

Ví dụ

import java.util.ArrayList;
import java.util.List;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class DrawingPolyines {
   Mat matrix = null;
   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 polygon
      List<MatOfPoint> list = new ArrayList<MatOfPoint>();
      list.add( new MatOfPoint (
         new Point(208, 71), new Point(421, 161),
         new Point(226, 232), new Point(332, 52),
         new Point(363, 250)));
      boolean isClosed = true;
      Scalar color = new Scalar(64, 64, 64);
      int thickness = 10;
      Imgproc.polylines (src, list, isClosed, color, thickness);
      //Saving and displaying the image
      Imgcodecs.imwrite("arrowed_line.jpg", src);
      HighGui.imshow("Drawing a polylines", 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ẽ polylines trong OpenCV bằng Java?