【Python/OpenCV】画像の高さ・幅・チャンネル数・画素数を調べる方法

この記事では、Python版OpenCVで画像の高さ・幅・チャンネル数・画素数を調べる方法をソースコード付きで解説します。

画像の取得

Python版OpenCVでは、「cv2.imread」を用いて読み込んだ画像データはNumPy配列に変換されます。
そのため、NumPy配列のshape属性を利用することで画像の高さ・幅・チャンネル数・画素数を調べることができます。

書式

dst = ndarray.shape
パラメータ 説明
ndarray NumPy型配列
dst 各次元の要素数を格納した配列

ソースコード(Python3+OpenCV3)

サンプルプログラムのソースコードです。

#-*- coding:utf-8 -*-
import cv2
import numpy as np

def main():
    # 画像の読み込み(RGB)
    img = cv2.imread("input.png")

    height, width, ch = img.shape

    # 画素数 = 幅 * 高さ
    size = width * height

    # 情報表示
    print("幅:", width)
    print("高さ:", height)
    print("チャンネル数:", ch)
    print("画素数:", size)   
    print("データ型:", img.dtype)
    print("Bの画素値:\n", img[0])
    print("Gの画素値:\n", img[1])
    print("Rの画素値:\n", img[2])


if __name__ == "__main__":
    main()

※グレースケール画像(1ch)の場合は2次元配列なので次のように変更します。
「h, w, ch = img.shape」→「h, w = img.shape」
グレースケール版のソースコード

実行結果

サンプルプログラムの実行結果です。

■入力画像(3×3)

■標準出力

幅: 3
高さ: 3
チャンネル数: 3
画素数: 9
データ型: uint8

Bの画素値:
 [[ 35  12 255]
 [ 43 198   0]
 [221  43  50]]

Gの画素値:
 [[  0   0   0]
 [255 255 255]
 [209 225 226]]

Rの画素値:
 [[200  87 174]
 [  0   0 255]
 [  0   0   0]]
関連記事
PythonでOpenCV入門 サンプル集
【Python】画像処理プログラミング入門
【画像処理入門】アルゴリズム&プログラミング

シェア&フォローお願いします!