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で画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。
コメント
img[0] # 1行の3画素のBGR
img[1] # 2行の3画素のBGR
img[2] # 3行の3画素のBGR
です。
※ヒロ様
コメントありがとうございます。
ご指摘の通り、誤りでしたのでコードを修正致しました。