【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

# 画像の読み込み(RGB)
img = cv2.imread("a.jpg")

height, width, ch = img.shape

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

# 情報表示
print("幅:", width)
print("高さ:", height)
print("チャンネル数:", ch)
print("画素数:", size)
print("データ型:", img.dtype)

# 1chずつ表示
print("Bの画素値:\n", img[:,:,0])
print("Gの画素値:\n", img[:,:,1])
print("Rの画素値:\n", img[:,:,2])

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

実行結果

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

■入力画像(3×3)

■標準出力

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

Bの画素値:
 [[ 35  43 221]
 [  0 255 209]
 [200   0   0]]
Gの画素値:
 [[ 12 198  43]
 [  0 255 225]
 [ 87   0   0]]
Rの画素値:
 [[255   0  50]
 [  0 255 226]
 [174 255   0]]
【Python版OpenCV超入門】使い方とサンプルコードを解説
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。

コメント

  1. ヒロ より:

    img[0] # 1行の3画素のBGR
    img[1] # 2行の3画素のBGR
    img[2] # 3行の3画素のBGR
    です。

    • 管理人 より:

      ※ヒロ様
      コメントありがとうございます。
      ご指摘の通り、誤りでしたのでコードを修正致しました。