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ピクセルの線で画像上に描画され、以下のようなウィンドウが表示されます。

ポイント解説
rectangle() メソッドでは、thickness の値に負の数(例:-1)を指定すると、塗りつぶしの長方形を描くこともできます。また、ScalarのBGR値を変更すれば自由に色をカスタマイズできるため、物体検出のバウンディングボックス表示など、さまざまな用途に応用できます。
-
【Java】Graphicsオブジェクトで角丸の長方形を描画する方法を解説
JavaでGUIアプリケーションに図形を描画したい場合、Graphicsオブジェクトを使うのが基本となります。この記事では、Graphicsオブジェクトの基礎知識と、drawRoundRect()メソッドを使って角丸の長方形(ラウンドレクト)を描画する具体的な手順を、サンプルコード付きで解説します。 Graphicsクラスとは Javaにおける描画処理は、java.awt.GraphicsクラスのインスタンスであるGraphicsオブジェクトを通じて行われます。 各Graphicsオブジェクトは独自の座標系を持ち、文字列・線・矩形・円・多角形など、さまざまな図形を描画するためのメソッドを備え
-
OpenCVを使って画像に長方形を描画する方法
このプログラムでは、OpenCVの rectangle() 関数を使用して、画像の上に長方形を描画します。この関数には、開始座標、終了座標、色、線の太さ、そして描画対象となる画像そのものといったパラメータを渡します。 元画像 アルゴリズム ステップ1: cv2をインポートする。 ステップ2: imread() を使って画像を読み込む。 ステップ3: 開始座標を定義する。 ステップ4: 終了座標を定義する。 ステップ5: 色と線の太さを定義する。 ステップ6: cv2.rectangle() 関数を使って長方形を描画する。 ステップ7: 長方形を画面に表示する。 サンプルコード import