如何使用 Java 在 OpenCV 中绘制填充椭圆?
javaobject oriented programmingprogramming
Java OpenCV 库的 org.opencv.imgproc 包包含一个名为 Imgproc 的类,该类提供了多种方法来处理输入图像。它提供了一组在图像上绘制几何形状的方法。
此类提供了一个名为ellipse()的方法,使用该方法您可以在图像上绘制椭圆,该方法的变体之一允许您将线型指定为包括−在内的参数之一。
一个Mat对象,表示要在其上绘制椭圆的图像。
一个RotatedRect 对象(椭圆在此矩形内绘制。)
一个Scalar对象,表示矩形的颜色(BGR)。
如果您传递Imgproc.FILLED作为参数,则此方法会生成一个填充eclipse。
示例
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.core.Point; import org.opencv.core.RotatedRect; import org.opencv.core.Scalar; import org.opencv.core.Size; import org.opencv.highgui.HighGui; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; public class DrawingFilledEllipse { public static void main(String args[]) { // 加载 OpenCV 核心库 System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); //加载 OpenCV 核心库 System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); //将源图像读入 Mat 对象 Mat src = Imgcodecs.imread("D:\images\blank.jpg"); //绘制椭圆 RotatedRect box = new RotatedRect(new Point(300, 200), new Size(260, 180),180); Scalar color = new Scalar(64, 64, 64); int thick = Imgproc.FILLED; Imgproc.ellipse(src, box, color, thick); //保存并显示图像 Imgcodecs.imwrite("arrowed_line.jpg", src); HighGui.imshow("Drawing an ellipse", src); HighGui.waitKey(); } }
输出
执行时,上述程序生成以下窗口 −