如何使用 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();
   }
}

输出

执行时,上述程序生成以下窗口 −


相关文章