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

วิธีวาดรูปทรงเรขาคณิตบนภาพโดยใช้ OpenCV Java Library


แพ็กเกจ org.opencv.imgproc ของไลบรารี Java OpenCV มีคลาสชื่อ Imgproc คลาสนี้มีเมธอดต่างๆ เช่น resize(), wrapAffine(), filter2D สำหรับประมวลผลภาพเข้า

นอกจากนี้ยังมีชุดเมธอดสำหรับวาดรูปทรงเรขาคณิตบนภาพ ดังนี้:

รูปทรง เมธอดและคำอธิบาย
วงรี (Ellipse) คุณสามารถวาดวงรีบนภาพได้โดยใช้เมธอด ellipse()
วงกลม (Circle) คุณสามารถวาดวงกลมบนภาพได้โดยใช้เมธอด circle()
สี่เหลี่ยม (Rectangle) คุณสามารถวาดสี่เหลี่ยมบนภาพได้โดยใช้เมธอด rectangle()
โพลีกอน (Polygon) คุณสามารถวาดโพลีกอนบนภาพได้โดยใช้เมธอด polygon()
เส้น (Line) คุณสามารถวาดเส้นบนภาพได้โดยใช้เมธอด 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;
import java.util.ArrayList;
import java.util.List;

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);
        
        // วาดวงกลม
        Imgproc.circle(src, new Point(75, 65), 40, color, Imgproc.FILLED);
        
        // วาดวงรี
        Imgproc.ellipse(src, new RotatedRect(new Point(330, 60), new Size(100, 65), 180), color, Imgproc.FILLED);
        
        // วาดเส้น
        Imgproc.line(src, new Point(540, 30), new Point(540, 90), color, 5);
        
        // วาดโพลีกอนทึบ
        List 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);
        
        // วาดสี่เหลี่ยม
        Imgproc.rectangle(src, new Point(150, 30), new Point(250, 95), color, Imgproc.FILLED);
        
        HighGui.imshow("Geometrical shapes", src);
        HighGui.waitKey();
    }
}

ผลลัพธ์

วิธีวาดรูปทรงเรขาคณิตบนภาพโดยใช้ OpenCV Java Library