【Python】OpenCVで画像の読み込み・画素値の表示

この記事では、Python+OpenCV(cv2.imread)を用いてjpg、png、bmp画像を読み込み、画素値を表示する方法をソースコード付きで解説します。

画像読み込み(cv2.imread)

画像処理ライブラリOpenCVでは、cv2.imreadメソッドを用いることで画像を読み込むことができます。

書式

img = cv2.imread(filename[,flag])
パラメータ 説明
filename 読み込む画像のファイル名
flag 0ならRGB(3bit)、1ならグレースケール(1bit)、-1ならRGBA(4bit)の画像として読み込み
img NumPy配列(読み込んだ画像の画素値を格納)

読み込みに対応している画像ファイル形式は、「jpg」「png」「bmp」「pgm」「pbm」「ppn」「dib」「jp2」「tiff」「tf」「ras」「sr」です。
読み込んだ画像の画素値はNumPy配列に格納されます。
そのため、通常のNumPy配列と同様に、print関数で中身を確認できます。

ソースコード

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

実行結果

サンプルプログラムの実行結果です。
■入力画像(3×3)

rgb= [[[ 36  28 237] [ 76 177  34] [204  72  63]]
    [[  0   0   0] [255 255 255] [195 195 195]]
    [[164  73 163] [ 36  28 237] [  0   0   0]]]

------------------------

gray= [[138 142  98]
         [  0 255 195]
         [120 138   0]]

------------------------

rgba= [[[ 36  28 237 255] [ 76 177  34 255] [204  72  63 255]]
         [[  0   0   0 255] [255 255 255 255] [195 195 195 255]]
         [[164  73 163 255] [ 36  28 237 255] [  0   0   0 255]]]

rgbとrgbaは3次元配列、grayは2次元配列になります。
それぞれの各要素は各画素の画素値を表しています。

種類 説明
rgb 最初の要素[ 36 28 237]は、座標(0,0)の画素値です。Windowsの場合、36はBlue、28はGreen、237はRedの濃度です。[ 76 177 34]は、座標(1, 0)の画素値です。
gray 最初の要素138は座標(0,0)の画素値です。142は、座標(1, 0)の画素値です。
rgba 最初の要素[36 28 237 255]は座標(0,0)の画素値です。Windowsの場合、36はBlue、28はGreen、237はRedの濃度、255は透明度です。[ 76 177 34 255]は、座標(1, 0)の画素値です。

【おすすめ記事】
【Python】OpenCV入門 サンプルプログラム集

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