OpenCV Reference

【OpenCV-Python】rectangle(矩形(長方形)の描画)

OpenCVで矩形(長方形)を描画するにはrectangle()関数を用います。

 

rectangle()関数には、長方形の対角の2点の座標を指定する方法と、Rect(長方形の左上のX座標、Y座標、幅、高さ)を指定する方法があります。

 

長方形の対角の2点を指定する方法

rectangle( img, pt1, pt2, color[, thickness[, lineType[, shift]]] ) -> img

引数

img 線の描画先の画像データ
pt1 矩形を構成する座標 (X座標, Y座標)をタプルで指定します。
ただし、座標の値は整数です。(小数は非対応)
pt2 pt1の対角の座標 (X座標, Y座標)をタプルで指定します。
ただし、座標の値は整数です。(小数は非対応)
color 線色
カラーの場合は、(B, G, R)の順のタプルで指定します。
thickness 線幅を整数で指定します。
マイナスの値を指定すると、矩形の内側が塗りつぶされます。
lineType cv2.LINE_4     4連結
cv2.LINE_8     8連結(デフォルト)
cv2.LINE_AA   アンチエイリアス
のいずれかを指定します。
shift 点座標の小数ビット数、デフォルトで0
x, y座標が以下の式に基づいて変換されます。
(x, y) -> (x * 2^(-shift),  y * 2^(-shift))

pt1, pt2の座標は、長方形の対角の座標であれば、組み合わせ、順番は任意に指定できます。

 

戻り値

img 画像データに追加で線が描画された画像データ(引数で渡した画像と同じデータ)

 

サンプルプログラム

import cv2
import numpy as np

img = np.zeros((10, 15, 3), dtype = np.uint8) # 幅15画素、高さ10画素で確保

# Rectで矩形の描画
# Rectは (左上のX座標、Y座標、矩形の幅、高さを指定)
cv2.rectangle(img, (1, 1), (13, 8), (0, 0, 255), 1)

cv2.namedWindow("Image", cv2.WINDOW_NORMAL)
cv2.imshow("Image", img)
cv2.waitKey()

実行結果

OpenCV Python rectangle 矩形 長方形 描画

 

Rect(長方形の左上のX座標、Y座標、幅、高さ)を指定する方法

rectangle( img, rec, color[, thickness[, lineType[, shift]]] ) -> img

引数

img 線の描画先の画像データ
rec 矩形の領域を、矩形の(左上のX座標, 左上のY座標, 矩形の幅, 矩形の高さ)の順のタプルで指定します。
ただし、値は整数です。(小数は非対応)
color 線色
カラーの場合は、(B, G, R)の順のタプルで指定します。
thickness 線幅を整数で指定します。
マイナスの値を指定すると、矩形の内側が塗りつぶされます。
lineType cv2.LINE_4     4連結
cv2.LINE_8     8連結(デフォルト)
cv2.LINE_AA   アンチエイリアス
のいずれかを指定します。
shift 点座標の小数ビット数、デフォルトで0
x, y座標が以下の式に基づいて変換されます。
(x, y) -> (x * 2^(-shift),  y * 2^(-shift))

 

戻り値

img 画像データに追加で線が描画された画像データ(引数で渡した画像と同じデータ)

 

サンプルプログラム

import cv2
import numpy as np

img = np.zeros((10, 15, 3), dtype = np.uint8) # 幅15画素、高さ10画素で確保

# Rectで矩形の描画
# Rectは (左上のX座標、Y座標、矩形の幅、高さを指定)
cv2.rectangle(img, (1, 1, 13, 8), (255, 0, 0), 1)

cv2.namedWindow("Image", cv2.WINDOW_NORMAL)
cv2.imshow("Image", img)
cv2.waitKey()

実行結果

OpenCV Python rectangle 矩形 長方形 描画

 

注意点

矩形の左上のX座標、Y座標、幅、高さで指定したとき、幅方向、高さ方法の座標間の距離は、

 矩形の幅 – 1矩形の高さ – 1

になる事に注意してください。

rec = (1, 1, 13, 8) として、指定した場合の座標は、以下のようになります。

OpenCV Python rectangle 矩形 長方形 描画

 

関連リンク

【OpenCV-Python】line(線の描画)
OpenCVで画像に線を描画するには、line()関数を用います。 line()関数の構文 line(img, pt1, pt2, color]]) ->img 引数 img 線の描画先の画像データ pt1 線の始点の座標 (X座標, Y座...

 

参照ページ

OpenCV: Drawing Functions

コメント

タイトルとURLをコピーしました