画像

OpenCVで画像の縦と横の長さ(サイズ)を求める

最終更新日 2023.02.18

今回は Python の OpenCV を使って画像のサイズを取得します。下の画像はぱくたそというフリー素材のサイトから引用しています。この画像は縦 533、横 800(どちらも単位はピクセル、以下同様)です。

import cv2

filename = 'flower.jpg'
img = cv2.imread(filename, 0)
height, width = img.shape[:2]

print(height)  # 533
print(width)  # 800

imread は第一引数にファイル名、第二引数にモードを指定します。モードはグレースケールなどの各種設定です。

imread が返している画像オブジェクト img は行列のようなもので、print で出力しても意味がよくわかりません。

import cv2

filename = 'flower.jpg'
img = cv2.imread(filename, 0)

print(img)

オブジェクトの中身。

[[153 150 146 ... 156 158 159]
 [149 146 143 ... 157 159 160]
 [145 142 140 ... 158 160 161]
 ...
 [151 128  93 ...  92  95  94]
 [152 128  89 ...  96  96  86]
 [157 129  91 ... 100  98  79]]

しかし shape は縦のサイズと横のサイズからなるタプルです。

import cv2

filename = 'flower.jpg'
img = cv2.imread(filename, 0)
shape = img.shape
size = img.size

print(shape)  # (533, 800)
print(size)  # 426400

この画像オブジェクトはサイズ以外のさまざまな情報を持っています。座標を指定して、その点の BGR(青・緑・赤)を求めることもできます。