2013年12月9日月曜日

[OpenCV] PythonのOpenCVで画像サイズの取得

PythonのOpenCVで画像のサイズを取得しようとした時の話。
画像はnumpyの3次元のndarray(配列)で定義されていて、画像サイズの取得には、numpy.ndarrayの属性を使ってあげればOK。
C++だと、cv::Matにはwidthやheightが定義されていたので、最初は戸惑うかもしれません。

例えば、横340px, 縦255pxの画像の場合は以下の通り。
>>> import cv2
>>> img = cv2.imread('画像のパス')
>>> img.shape
(255, 340, 3)
ちなみに最後の3は、BGRの3次元のこと。

頻繁に利用するならばこうしておけばとりあえず良いと思う。
>>> height, width = img.shape[:2]
>>> height
255
>>> width
340

紛らわしいのが size で、これは配列の要素数を表す。
>>> img.size
260100
260100 = 255 * 340 * 3 ということ。

ちなみに、配列の各要素のデータ型は、0~255までの符号なし8bit整数。
>>> img.dtype
dtype('uint8')

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...