Python で OpenCV モジュールを使用して長方形を描く

Vaibhav Vaibhav 2024年2月15日
Python で OpenCV モジュールを使用して長方形を描く

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) ステートメントがあります。プログラムが実行されると、画像が自動的に閉じるのを防ぎます。このステートメントなしでプログラムを実行すると、変更されたイメージが表示され、すぐに閉じます。

出力:

opencv cv2python で長方形を描く

厚さの値を -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)

出力:

opencv cv2python で長方形を描画します-厚さを-1 に設定する

著者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

関連記事 - Python OpenCV