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(青・緑・赤)を求めることもできます。