スポンサーリンク

Chainer用の画像処理メモ(6)画像をNumpy配列に変換

機械学習で、Chainer用に、画像→ndarray変換を行うために、pythonの勉強をしている。

http://twosquirrel.mints.ne.jp/?p=20153

前回は、NumPy配列について、以下の本で勉強してみた。3つの本すべての該当部分を読んで初めて、なんとなくNumPy配列が分かってきた気がします。

  

今回は、以下のサイトを写経してみたい。

Python – NumPyで画像を配列として取得する
投稿者: edo1z 投稿日: 09/27/2015

https://endoyuta.com/2015/09/27/python-numpy%E3%81%A7%E7%94%BB%E5%83%8F%E3%82%92%E9%85%8D%E5%88%97%E3%81%A8%E3%81%97%E3%81%A6%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/

(環境)
Panasonic CF-RZ4
Windows 8.1 Pro
Anaconda 4.4.0
Python 3.5
Chainer 2.0
OpenCV3

(1)写経したら、うまくいった。

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)

image

im_ndarray.txt の中身。

元画像のjpgファイルは50KB。これをNumPy配列に変換して、テキストで保存すると、約6.6MB。

image

from PIL import Image
import numpy as np

# 上記で保存したNumPy配列を読み出す
b = np.loadtxt(‘im_ndarray.txt’)
print(b)

image

 

ここまでかなりかかった。

次こそ、以下のサイトの写経をしたい。

 

chainerのデータセットの作り方 LinearやCNN
tommyfms2
2017年10月07日に更新
https://qiita.com/tommyfms2/items/c3fa0cb258c17468cb30

スポンサーリンク