【Python・OpenCV】画像のサイズとチャンネル数を取得する

※当サイトではアフィリエイト広告を利用しています

Python プログラミング 画像処理

【Python・OpenCV】画像のサイズとチャンネル数を取得する

2023-02-28

はじめに

画像の縦横サイズを取得する方法について解説します。
PythonのOpenCVでは画像はNumPyのndarray配列のデータ形式になっています。このため画像の高さ,幅,チャンネル数はNumPyの機能を利用して取得することができます。

(広告) OpenCV関連書籍をAmazonで探す

画像のサイズとチャンネル数

ndarrayの変数shapeによって画像の高さと幅、チャンネル数を取得できます。
shapeの戻り値は高さ,幅,チャンネル数(カラー画像の場合)のtupleです。

カラー画像の場合

import cv2
 
# 画像を読み込む
image = cv2.imread('duck.jpg')
 
# 画像のサイズを取得(height:高さ, width:幅, channel:チャンネル数)
height, width, channel = image.shape[:3]

メモ

グレースケール画像であれば戻り値のtupleは高さと幅のみとなります。そのため、チャンネル数の有無は画像がグレースケールかカラーか調べる方法として利用することができます。

画像の合計画素数

合計画素数はndarrayの変数sizeで調べることができます。
shapeの戻り値は高さ,幅,チャンネル数(カラー画像の場合)のtupleです。

import cv2
 
# 画像を読み込む
image = cv2.imread('images/duck.jpg')
 
# 画像の合計画素数を取得
pixels = image.size

画像のデータ型

画像のデータ型はdtypeで調べることができます。
データ型の不一致などでエラーが発生することがありますので、データ型の確認方法を覚えておくと便利です。

import cv2
 
# 画像を読み込む
image = cv2.imread('duck.jpg')
 
# 画像のデータ型を取得
data_type = image.dtype

最後までご覧いただきありがとうございました。

■(広告)OpenCVの参考書としてどうぞ!■

参考リンク

-Python, プログラミング, 画像処理
-