Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีวาดพหุเหลี่ยมทึบ (Filled Polygon) ใน OpenCV ด้วย Java

แพ็กเกจ org.opencv.imgproc ของ Java OpenCV library มีคลาสชื่อ Imgproc เพื่อวาดพหุเหลี่ยมทึบ ให้ใช้เมธอด fillPoly() ของคลาสนี้ เมธอดนี้รับพารามิเตอร์:

  • อ็อบเจ็กต์ Mat แทนภาพที่จะวาด polygon
  • List object ที่เก็บอ็อบเจ็กต์ประเภท MatOfPoint
  • อ็อบเจ็กต์ Scalar แทนสีของ polygon
  • ค่า integer แทน line type

ตัวอย่างโค้ด

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) {
        // โหลด OpenCV core library
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        // อ่านภาพต้นทางเข้า Mat object
        Mat src = Imgcodecs.imread("D:\\images\\blank.jpg");
        
        // วาดพหุเหลี่ยม
        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();
    }
}

ผลลัพธ์

เมื่อรันโปรแกรมจะได้หน้าต่างดังนี้:

วิธีวาดพหุเหลี่ยมทึบ (Filled Polygon) ใน OpenCV ด้วย Java