tiffファイルから画像(.png)を保存するプログラムを作成しています。
【tiffファイル内容】
1500×3500で2次元配列となっており,0~6までの数字が
値として入っています。データ型はnp.float32です。
このファイルを画像化して,pngに画像を保存したいと考えており,
カラーはPairedで,最小値0,最大値6に色付けした画像を作成したいのです。
●コード●
import os import sys import numpy import numpy as np import matplotlib.pyplot as plt import matplotlib.cm as cm import glob from PIL import Image import PIL path = "/media/student/data1" path2 = "/media/student/data1/ctype/" datalist = glob.glob(path2 + "*.tif") for data in datalist: name = data[len(path2)+2:-4] if name : print name + "..." + "OK" cloud = np.fromfile(data,dtype=np.float32) plt.imshow(cloud, cmap = 'Paired', vmin = 0, vmax = 6, extent=(130,180,0,30), interpolation='none') pil_img = Image.fromarray(np.float32(cloud)) print "cloud...ok" outdata = path + "/test/" +"ct-" +name + ".png" pil_img.save(outdata)
●エラー●
student@sh2:/media/student/data1$ python c_gazou.py 20160924-1800...OK /media/student/data1/ctype/c-20160924-1800.tif Traceback (most recent call last): File "c_gazou.py", line 27, in <module> plt.imshow(cloud, cmap = 'Paired', vmin = 0, vmax = 6, extent=(130,180,0,30), interpolation='none') File "/usr/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 3022, in imshow **kwargs) File "/usr/lib/python2.7/dist-packages/matplotlib/__init__.py", line 1814, in inner return func(ax, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/matplotlib/axes/_axes.py", line 4947, in imshow im.set_data(X) File "/usr/lib/python2.7/dist-packages/matplotlib/image.py", line 453, in set_data raise TypeError("Invalid dimensions for image data") TypeError: Invalid dimensions for image data
plt.imshow(cloud, cmap = 'Paired', vmin = 0, vmax = 6, extent=(130,180,0,30), interpolation='none')
ここでエラーを起こしているみたいです。
エラーを解消するにはどのようにすればいいでしょうか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/21 10:00
2018/05/21 10:34
2018/05/23 05:03