Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaとOpenCVで楕円を描画する方法|Imgproc.ellipse()の使い方を解説

Java版OpenCVライブラリの org.opencv.imgproc パッケージには、Imgproc クラスが含まれています。画像に楕円を描画するには、このクラスが提供する ellipse() メソッドを呼び出します。

ellipse()メソッドのパラメータ

ellipse() メソッドは、以下の引数を受け取ります。

  • Matオブジェクト:楕円を描画する対象となる画像を表します。

  • RotatedRectオブジェクト:回転可能な矩形を表します。楕円はこの矩形に内接する形で描画されます。

  • Scalarオブジェクト:描画する色をBGR形式で指定します。

  • int型の値:線の太さを指定します(デフォルト値は1)。

サンプルコード

以下は、画像上に楕円を描画するJavaプログラムの完全な例です。

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 DrawingEllipse {
    public static void main(String args[]) {
        // 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 thickness = 10;
        Imgproc.ellipse(src, box, color, thickness);

        // 画像を保存して表示する
        Imgcodecs.imwrite("ellipse_output.jpg", src);
        HighGui.imshow("Drawing an ellipse", src);
        HighGui.waitKey();
    }
}

コードの解説

このプログラムでは、まず System.loadLibrary() によってOpenCVのネイティブライブラリを読み込みます。次に Imgcodecs.imread() を使って対象画像を読み込みます。

楕円の形状は RotatedRect オブジェクトで定義します。この例では、中心座標 (300, 200)、サイズ 260×180 ピクセル、回転角度180度の矩形を指定しています。色は Scalar(64, 64, 64) としてダークグレーを指定し、線の太さは10ピクセルに設定しています。

最後に Imgproc.ellipse() を呼び出すことで、指定した矩形に内接する楕円が画像上に描画され、imwrite() による保存と HighGui.imshow() による画面表示が行われます。

実行結果

上記のプログラムを実行すると、次のようなウィンドウが表示され、画像上に楕円が描画されていることが確認できます。

JavaとOpenCVで楕円を描画する方法|Imgproc.ellipse()の使い方を解説

  1. JavaとOpenCVライブラリを使って画像を保存(書き出し)する方法

    OpenCVライブラリを利用すると、画像フィルタリング、幾何学的変換、色空間の変換、ヒストグラム処理など、さまざまな画像処理操作を行うことができます。本記事では、その中でも基本的な操作である「画像の読み込みと保存(書き出し)」の方法を解説します。画像を書き出す(保存する)方法Imgcodecsクラスのimread()メソッドを使って画像を読み込むと、その内容はMat(Matrix)オブジェクトに格納されます。読み込んだ画像をファイルとして保存するには、imwrite()メソッドを使用します。imwrite()メソッドは、以下の2つの引数を受け取ります。file:保存先のファイルパスを表す文字列

  2. OpenCVで画像に楕円を描画する方法|cv2.ellipse()の使い方を解説

    この記事では、Pythonの画像処理ライブラリ「OpenCV」を使って、画像の上に楕円を描画する方法を解説します。楕円の描画には、OpenCVが提供する cv2.ellipse() 関数を使用します。元画像アルゴリズム(処理の手順)楕円を描画するまでの流れは、以下の手順になります。ステップ1: cv2 をインポートする。 ステップ2: imread() で画像を読み込む。 ステップ3: 楕円の中心座標を設定する。 ステップ4: 楕円の長軸・短軸の長さ(axesLength)を設定する。 ステップ5: 楕円の回転角度(angle)を設定する。 ステップ6: 描画を開始する角度と終了する角度を設定