Python で OpenCV モジュールを使用して長方形を描く
Vaibhav Vaibhav
2024年2月15日
OpenCV は、リアルタイムのコンピュータービジョンライブラリです。Python、Java、C++ などのプログラミング言語で使用できます。OpenCV を使用すると、形状を描画し、画像を効率的に処理できます。この記事では、OpenCV モジュールを使用して長方形を描画する方法を学習します。
OpenCV を使用して長方形を描く
OpenCV モジュールには、長方形の描画に使用できる rectangle()
関数があります。画像オブジェクトを返します。以下の引数を受け入れます。
img
:長方形を作成する必要がある画像オブジェクトです。pt1
:長方形の開始座標です。x 座標値と y 座標値を持つタプルを受け入れます。pt2
:長方形の終了座標です。x 座標値と y 座標値を持つタプルを受け入れます。color
:長方形の色を表すタプルです。OpenCV は、デフォルトで BGR 形式を考慮します。したがって、値は一般的な RGB 形式ではなく、BGR で入力する必要があります。たとえば、(255, 0, 0)
は青を表し、(0, 0, 255)
は赤を表します。thickness
:長方形の境界線の厚さです。その単位はpx
です。-1
の厚さは、指定された色で長方形を塗りつぶします。他の正の厚さの値の場合、長方形は指定された色で塗りつぶされません。国境にのみ適用されます。
次に、この関数を実際に使用して長方形を描画する方法を見てみましょう。例については、次のコードを参照してください。
import cv2
image_url = "full\\path\\to\\the\\image\\image.jpg" # Full path is needed
image = cv2.imread(image_url, cv2.COLOR_BGR2RGB)
start_point = (140, 140)
end_point = (500, 500)
color = (0, 0, 255)
thickness = 3
image_with_rectangle = cv2.rectangle(
img=image, pt1=start_point, pt2=end_point, color=color, thickness=thickness
)
cv2.imshow("Image with a Rectangle", image_with_rectangle)
cv2.waitKey(0)
上記のコードは、最初に指定されたパスから画像をロードし、cv2.COLOR_BGR2RGB
を使用して BGR の色の順序を RGB の色の順序に変換してから、画像上に 360 x 360
のサイズの長方形を描画します。厚さの値は正であることに注意してください。これは、長方形に塗りつぶしの色がないことを意味します。
さらに、コードの最後にこの cv2.waitKey(0)
ステートメントがあります。プログラムが実行されると、画像が自動的に閉じるのを防ぎます。このステートメントなしでプログラムを実行すると、変更されたイメージが表示され、すぐに閉じます。
出力:
厚さの値を -1
に変更するとどうなりますか?その場合、長方形は塗りつぶしの色になります。同じことについては、次のコードを参照してください。
import cv2
image_url = "full\\path\\to\\the\\image\\image.jpg" # Full path is needed
image = cv2.imread(image_url, cv2.COLOR_BGR2RGB)
start_point = (140, 140)
end_point = (500, 500)
color = (0, 255, 255)
thickness = -1
image_with_rectangle = cv2.rectangle(
img=image, pt1=start_point, pt2=end_point, color=color, thickness=thickness
)
cv2.imshow("Image with a Rectangle", image_with_rectangle)
cv2.waitKey(0)
出力:
著者: Vaibhav Vaibhav