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

JavaとOpenCVで長方形を描画する方法|Imgproc.rectangle()の使い方を徹底解説

Java用OpenCVライブラリの org.opencv.imgproc パッケージには、Imgproc クラスが含まれています。画像に長方形を描画するには、このクラスが提供する rectangle() メソッドを使用します。

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

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

  • Pointオブジェクト(2つ):描画する長方形の対角となる2つの頂点座標を表します。

  • Scalarオブジェクト:長方形の色をBGR形式で指定します。

  • 整数値:長方形の枠線の太さを指定します(デフォルト値は1)。

サンプルコード

以下は、白紙の画像に長方形を描画する具体的なプログラム例です。

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 DrawingRectangle {
    public static void main(String args[]) {
        // OpenCVコアライブラリの読み込み
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

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

        // 長方形を描画
        Point point1 = new Point(100, 100);
        Point point2 = new Point(500, 300);
        Scalar color = new Scalar(64, 64, 64);
        int thickness = 10;
        Imgproc.rectangle(src, point1, point2, color, thickness);

        // 結果の保存と表示
        Imgcodecs.imwrite("rectangle_output.jpg", src);
        HighGui.imshow("Drawing a rectangle", src);
        HighGui.waitKey();
    }
}

実行結果

このプログラムを実行すると、指定した2点(100,100)と(500,300)を対角とするグレー色の長方形が、太さ10ピクセルの線で画像上に描画され、以下のようなウィンドウが表示されます。

JavaとOpenCVで長方形を描画する方法|Imgproc.rectangle()の使い方を徹底解説

ポイント解説

rectangle() メソッドでは、thickness の値に負の数(例:-1)を指定すると、塗りつぶしの長方形を描くこともできます。また、ScalarのBGR値を変更すれば自由に色をカスタマイズできるため、物体検出のバウンディングボックス表示など、さまざまな用途に応用できます。

  1. 【Java】Graphicsオブジェクトで角丸の長方形を描画する方法を解説

    JavaでGUIアプリケーションに図形を描画したい場合、Graphicsオブジェクトを使うのが基本となります。この記事では、Graphicsオブジェクトの基礎知識と、drawRoundRect()メソッドを使って角丸の長方形(ラウンドレクト)を描画する具体的な手順を、サンプルコード付きで解説します。 Graphicsクラスとは Javaにおける描画処理は、java.awt.GraphicsクラスのインスタンスであるGraphicsオブジェクトを通じて行われます。 各Graphicsオブジェクトは独自の座標系を持ち、文字列・線・矩形・円・多角形など、さまざまな図形を描画するためのメソッドを備え

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

    このプログラムでは、OpenCVの rectangle() 関数を使用して、画像の上に長方形を描画します。この関数には、開始座標、終了座標、色、線の太さ、そして描画対象となる画像そのものといったパラメータを渡します。 元画像 アルゴリズム ステップ1: cv2をインポートする。 ステップ2: imread() を使って画像を読み込む。 ステップ3: 開始座標を定義する。 ステップ4: 終了座標を定義する。 ステップ5: 色と線の太さを定義する。 ステップ6: cv2.rectangle() 関数を使って長方形を描画する。 ステップ7: 長方形を画面に表示する。 サンプルコード import