Python
 Computer >> コンピューター >  >> プログラミング >> Python

matplotlibで入力画像を読み込み、NumPy配列として出力する方法

Pythonのmatplotlibライブラリを使うと、画像ファイルを読み込んでその内容をNumPy配列として取得・表示できます。この記事では、入力画像を読み込み、ピクセルデータを配列としてコンソールに出力するとともに、図として画面に表示するまでの一連の手順をわかりやすく解説します。

処理の手順

  • plt.rcParams を使って図のサイズを設定し、figure.autolayout でサブプロット周辺の余白を自動調整します。

  • plt.imread() メソッドを使って、ファイルから画像を読み込みNumPy配列として取得します。

  • 取得した画像のNumPy配列を print() で出力します。

  • グラフの軸を非表示にするには、axis('off') メソッドを使用します。

  • 最後に plt.show() メソッドを呼び出して、図を画面に表示します。

コード例

from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

im = plt.imread("forest.jpg")
print("Numpy array of the image is: ", im)

im = plt.imshow(im)
plt.axis('off')

plt.show()

実行結果

このコードを実行すると、以下のような画像が表示されます。

matplotlibで入力画像を読み込み、NumPy配列として出力する方法

同時に、コンソールには画像のNumPy配列が出力されます。各要素は画像のピクセルに対応するRGB値(赤・緑・青の輝度値)を表しています。

[[[ 47 129 211]
   [ 47 129 211]
   [ 49 130 212]
   ...
   [ 50 76 109]
   [ 52 77 108]
   [ 41 66 97]]

   [[ 47 129 211]
      [ 47 129 211]
      [ 49 130 212]
      ...
      [ 43 69 102]
      [ 51 76 107]
      [ 46 71 102]]

[[ 45 130 211]
   [ 45 130 211]
   [ 48 130 212]
   ...
   [ 42 67 98]
   [ 45 70 101]
   [ 49 74 105]]

   ...

[[102 53 21]
   [101 51 18]
   [111 59 22]
   ...
   [ 28 17 11]
   [ 31 16 9]
   [ 33 16 9]]

[[ 99 49 14]
   [ 85 35 0]
   [100 50 13]
   ...
   [ 29 16 10]
   [ 30 15 8]
   [ 33 16 9]]

[[ 93 45 7]
   [ 91 46 7]
   [ 93 47 11]
   ...
   [ 29 16 10]
   [ 36 19 12]
[ 39 20 14]]]

ポイントの解説

  • plt.imread() の戻り値は、JPEG形式の場合は0〜255の整数値、PNG形式の場合は0.0〜1.0の浮動小数点数となるため、画像形式によって配列の中身が異なる点に注意してください。

  • 配列の形状は「(高さ × 幅 × チャンネル数)」となっており、カラー画像の場合はチャンネル数が3(RGB)になります。

  • axis('off') を指定しない場合は、画像の周囲に目盛りやラベルが表示されます。画像だけをきれいに見せたい場合はオフにするのがおすすめです。


  1. Matplotlibの図に凡例を配置・整列させる方法

    Matplotlibで作成した図(フィギュア)に凡例を適切な位置に配置し、要素を整列させる方法を解説します。凡例の位置調整には bbox_to_anchor 引数を使用するのがポイントです。 手順 plot() メソッドを使って line1 と line2 の2本の線をプロットします。 legend() メソッドで図に凡例を配置します。このとき bbox_to_anchor を使って凡例の位置を指定し、ncol 引数で凡例要素を横並びに整列させます。 show() メソッドを呼び出して図を表示します。 コード例 from matplotlib import pyplot as plt pl

  2. MatplotlibでPythonのプロットに度(°)記号を挿入する方法

    Matplotlibで作成したグラフに度(°)記号を挿入したい場合、LaTeX表記を利用すると簡単に実現できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。 度記号を挿入する手順 numpyを使って、pV(圧力×体積)、nR、T(温度)のデータポイントを作成します。 plot()メソッドを使って、pVとTの関係をプロットします。 xlabel()メソッドで、x軸のラベル「Pressure x Volume」を設定します。 ylabel()メソッドで、LaTeX表記 $^\circ$ を含む温度ラベルをy軸に設定します。 show()メソッドを呼び出して、図を画面に表