แพ็กเกจ 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();
}
}
ผลลัพธ์
