===== 画像をnumpy配列に変換 ===== 以下のサイトのコードほとんどそのままです。 Python – NumPyで画像を配列として取得する\\ 投稿者: edo1z 投稿日: 09/27/2015\\ https://endoyuta.com/2015/09/27/python-numpyで画像を配列として取得する/ ==== 1. cat.jpgの用意 ==== https://pixabay.com/ から、猫の画像をダウンロードして、cat.jpg という名前で保存します。 {{:pasted:20171022-234329.png}} {{:pasted:20171022-234304.png}} 640x426のカラー画像です。 {{:pasted:20171022-234705.png}} ==== 2. Jupyter Notebookで以下のコードを入力 ==== from PIL import Image import numpy as np # PILでcat.jpgを開いてグレースケール画像に変換し、NumPy配列に変換 im = np.array(Image.open('cat.jpg').convert('L')) # NumPy配列のshapeと、要素のデータ型を表示 print(im.shape, im.dtype) # グレースケール化した画像のNumPy配列に変換したものを表示 print(im) # 上記NumPy配列をテキストで保存 np.savetxt('im_ndarray.txt', im) コードを入力してから、Shift + Enterを押すと、以下のような結果になります。 {{:pasted:20171023-003059.png}} 上記コードについて説明します。 まず、PIL(pillow)とNumPyを使うので、インポートします。 PILでcat.jpgを開いてグレースケール画像に変換し、NumPy配列という行列に変換します。 今回は、もとのjpg画像が640x426(幅 640 pixel, 高さ 426 pixel)なので、各ピクセルのグレースケールの値(0から255)を並べた行列は、426行640列となります。そのため、im.shape は、(426, 640)というタプルとなります。 上記NumPy配列を、im_ndarray.txtという名前で保存します。 なんと、50KBのjpg画像をNumPy配列に変換したら、6657KBにもなってしまいました。TIF画像と似たようなものだと思います。 {{:pasted:20171023-002559.png}} ちなみに、im_ndarray.txtの中身は、以下のように、数字がスペースと改行で区切られて保存されています。 {{:pasted:20171023-003709.png}} ==== 3. 保存したNumPy配列の読み出し(テキストで保存した場合) ==== 上記で保存したim_ndarray.txtを読み込む場合は、以下のコードとなります。 from PIL import Image import numpy as np # 上記で保存したNumPy配列を読み出す b = np.loadtxt('im_ndarray.txt') print(b) {{:pasted:20171023-003321.png}} ===== 参考文献 ===== ど素人の私がこのコードを見つけるまでに、以下の3つの本の該当部分を繰り返し読みました。       Python – NumPyで画像を配列として取得する\\ 投稿者: edo1z 投稿日: 09/27/2015\\ https://endoyuta.com/2015/09/27/python-numpyで画像を配列として取得する/ 行列による画像処理 基礎編&目次 ~Python画像処理の再発明家~\\ 20170405\\ https://qiita.com/secang0/items/1229212a37d8c9922901 NumPyで画像処理\\ http://www.mwsoft.jp/programming/computer_vision_with_python/1_3_numpy.html 初めてのPython画像処理\\ https://qiita.com/uosansatox/items/4fa34e1d8d95d8783536 https://lp-tech.net/articles/DCw73 2013年12月9日\\ [OpenCV] PythonのOpenCVで画像サイズの取得\\ http://yu-write.blogspot.jp/2013/12/opencv-pythonopencv_9.html ===== リンク ===== あ