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

JavaとOpenCVで線を描画する方法をわかりやすく解説

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

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

line()メソッドは、以下のパラメータを受け取ります。

  • Matオブジェクト ― 直線を描画する対象となる画像を表します。
  • Pointオブジェクト2つ ― 直線の始点と終点の座標を表します。
  • Scalarオブジェクト ― 直線の色をBGR形式で指定します。
  • 整数値 ― 直線の太さを指定します(デフォルト値:1)。

サンプルコード

以下は、白紙の画像に対して直線を1本描画するJavaプログラムの例です。

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class DrawingLine {
    public static void main(String args[]) {
        // OpenCVネイティブライブラリの読み込み
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

        // 元画像をMatオブジェクトとして読み込む
        Mat src = Imgcodecs.imread("D:\\images\\blank.jpg");

        // 直線を描画するための設定
        Point start = new Point(150, 200);   // 始点
        Point end = new Point(450, 200);     // 終点
        Scalar color = new Scalar(64, 64, 64); // 色(BGR)
        int thickness = 10;                  // 太さ

        // line()メソッドで直線を描画
        Imgproc.line(src, start, end, color, thickness);

        // 画像の保存と表示
        Imgcodecs.imwrite("line_output.jpg", src);
        HighGui.imshow("Drawing a line", src);
        HighGui.waitKey();
    }
}

コードのポイント解説

  • System.loadLibrary(Core.NATIVE_LIBRARY_NAME) ― OpenCVのネイティブライブラリを読み込みます。この処理は必ず最初に行います。
  • Imgcodecs.imread() ― 指定したパスから画像ファイルを読み込み、Matオブジェクトとして返します。
  • Imgproc.line() ― 始点・終点・色・太さを指定して、画像上に直線を描画します。
  • HighGui.imshow() / waitKey() ― 描画結果をウィンドウに表示し、キー入力を待機します。

実行結果

このプログラムを実行すると、指定した座標間に灰色の太い直線が描かれた画像が生成され、次のようなウィンドウが表示されます。

JavaとOpenCVで線を描画する方法をわかりやすく解説

line()メソッドを使えば、図形への注釈追加や検出結果の可視化など、さまざまな用途に応用できます。色や太さ、座標を変えて、ぜひいろいろ試してみてください。

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

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

  2. OpenCVを使って画像に線を描画する方法

    この記事では、OpenCVのcv2.line()関数を使用して、画像にシンプルな線を描画する方法を解説します。線の始点・終点・太さ・色を自由に指定できるので、図形の描画や注釈の追加など、さまざまな場面で活用できます。 元画像 処理の流れ(アルゴリズム) ステップ1:cv2をインポートする。 ステップ2:imread()で画像を読み込む。 ステップ3:image.shapeメソッドで画像のサイズ(高さ・幅・チャンネル数)を取得する。 ステップ4:線の始点を定義する。 ステップ5:線の終点を定義する。 ステップ6:線の太さを定義する。 ステップ7:cv2.line()関数で線を描画し、ステップ3