Gói org.opencv.imgproc của thư viện Java OpenCV chứa một lớp có tên là Imgproc lớp này cung cấp các phương thức khác nhau như, resize (), wrapAffine (), filter2D, để xử lý hình ảnh đầu vào.
Ngoài ra, nó còn cung cấp một tập hợp các phương pháp để vẽ các hình dạng hình học trên hình ảnh, Sau đây là một số phương pháp trong số đó -
Hình dạng | Phương pháp và Mô tả |
---|---|
Hình elip | Bạn có thể vẽ hình elip trên hình ảnh bằng cách sử dụng ellipse () phương pháp. |
Vòng kết nối | Bạn có thể vẽ hình tròn trên hình ảnh bằng cách sử dụng circle () phương pháp. |
Hình chữ nhật | Bạn có thể vẽ hình chữ nhật trên hình ảnh bằng cách sử dụng chữ nhật () phương pháp. |
Đa giác | Bạn có thể vẽ đa giác trên hình ảnh bằng cách sử dụng polygon () phương pháp. |
Dòng | Bạn có thể vẽ một đường thẳng trên hình ảnh bằng cách sử dụng line () phương pháp |
Ví dụ
Ví dụ Java sau đây vẽ các hình dạng khác nhau trên một hình ảnh OpenCV trống -
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; 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); //Drawing a Circle Imgproc.circle(src, new Point(75, 65), 40, color, Imgproc.FILLED); // Drawing an Ellipse Imgproc.ellipse(src, new RotatedRect(new Point(330, 60), new Size(100, 65), 180), color, Imgproc.FILLED); //Drawing a line Imgproc.line(src, new Point(540,30), new Point(540, 90), color, 5); //Drawing filled polygon List<MatOfPoint> 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); //Drawing a Rectangle Imgproc.rectangle(src, new Point(150, 30), new Point(250, 95),color, Imgproc.FILLED); HighGui.imshow("Geometrical shapes", src); HighGui.waitKey(); } }
Đầu ra