Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Vẽ đa giác tô đầy (Filled Polygon) trong OpenCV Java

Gói org.opencv.imgproc chứa lớp Imgproc. Vẽ đa giác tô đầy bằng phương thức fillPoly(). Tham số:

  • Mat: ảnh vẽ lên.
  • List: danh sách MatOfPoint (đỉnh đa giác).
  • Scalar: màu tô.
  • Int: loại đường nét (LINE_8, LINE_4, LINE_AA).

Ví dụ minh họa

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 DrawingFilledPolygon {
    public static void main(String[] args) {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        Mat src = Imgcodecs.imread("D:\\images\\blank.jpg");
        
        // Định nghĩa các đỉnh đa giác
        List list = new ArrayList<>();
        list.add(new MatOfPoint(
            new Point(208, 71), new Point(421, 161),
            new Point(332, 52), new Point(369, 250),
            new Point(421, 161), new Point(226, 232),
            new Point(369, 250), new Point(208, 71),
            new Point(226, 232), new Point(332, 52)
        ));
        
        Scalar color = new Scalar(64, 64, 64);
        int lineType = Imgproc.LINE_8;
        Imgproc.fillPoly(src, list, color, lineType);
        
        Imgcodecs.imwrite("arrowed_line.jpg", src);
        HighGui.imshow("Drawing a polygon", src);
        HighGui.waitKey();
    }
}

Kết quả

Vẽ đa giác tô đầy (Filled Polygon) trong OpenCV Java