2017-01-12 75 views
-1

這是圖像被存儲在大小的陣列的zerozero一個20 x 20像素圖像400:如何顯示畫面在Python像Matlab

X[0,:] = [255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
      255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
      255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
      255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
      255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 
      254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 246 
      232 206 206 246 254 255 255 255 255 255 255 255 255 255 255 255 255 255 
      246 182 132 132 132 161 206 232 254 255 255 255 255 255 255 255 255 255 
      255 254 206 132 132 132 132 132 132 182 246 255 255 255 255 255 255 255 
      255 255 255 254 206 132 132 161 182 161 132 161 232 255 255 255 255 255 
      255 255 255 255 255 254 182 132 161 232 246 182 132 161 232 255 255 255 
      255 255 255 255 255 255 255 246 182 132 182 246 246 182 132 182 246 255 
      255 255 255 255 255 255 255 255 255 246 182 132 182 254 232 161 132 206 
      254 255 255 255 255 255 255 255 255 255 255 246 182 132 182 246 206 132 
      161 232 254 255 255 255 255 255 255 255 255 255 255 246 182 132 161 206 
      161 132 182 246 255 255 255 255 255 255 255 255 255 255 255 254 206 132 
      132 132 132 132 206 254 255 255 255 255 255 255 255 255 255 255 255 255 
      232 182 161 132 132 182 232 254 255 255 255 255 255 255 255 255 255 255 
      255 255 254 246 232 206 206 232 254 255 255 255 255 255 255 255 255 255 
      255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
      255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
      255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
      255 255 255 255] 

在Matlab中,我可以使用此看到這樣的畫面圖片displayData(X(0,:))命令。

此外,使用下面的命令:

% Randomly select 100 data points to display 
sel = randperm(size(X, 1)); 
sel = sel(1:100); 
displayData(X(sel, :)); 

我可以顯示相同的數字的不同的圖片:

A lot of pictures

Machine Learning

我試圖做在Python相同的操作使用以下代碼:

import matplotlib.pyplot as plt 
plt.imshow(X[0, :]) 
plt.show() 

但是,它拋出這個錯誤:Output: TypeError: Invalid dimensions for image data

回答

5

numpy的陣列通常被用來保存數據在matplotlib繪製,所以其最簡單的灰度圖像讀取字節到numpy的陣列,告訴你numpy的數組塑造

再就是對情節太

import numpy as np 
import matplotlib.pyplot as plt 

zstr = '255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 246 232 206 206 246 254 255 255 255 255 255 255 255 255 255 255 255 255 255 246 182 132 132 132 161 206 232 254 255 255 255 255 255 255 255 255 255 255 254 206 132 132 132 132 132 132 182 246 255 255 255 255 255 255 255 255 255 255 254 206 132 132 161 182 161 132 161 232 255 255 255 255 255 255 255 255 255 255 254 182 132 161 232 246 182 132 161 232 255 255 255 255 255 255 255 255 255 255 246 182 132 182 246 246 182 132 182 246 255 255 255 255 255 255 255 255 255 255 246 182 132 182 254 232 161 132 206 254 255 255 255 255 255 255 255 255 255 255 246 182 132 182 246 206 132 161 232 254 255 255 255 255 255 255 255 255 255 255 246 182 132 161 206 161 132 182 246 255 255 255 255 255 255 255 255 255 255 255 254 206 132 132 132 132 132 206 254 255 255 255 255 255 255 255 255 255 255 255 255 232 182 161 132 132 182 232 254 255 255 255 255 255 255 255 255 255 255 255 255 254 246 232 206 206 232 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255'  

z, z.shape = np.array([int(i) for i in zstr.split(' ')]), (20,20) 

fig, ax = plt.subplots() 
ax.imshow(z, cmap=plt.cm.gray, interpolation='nearest') 
# interpolation=None uses a smoother default interpolatiopn 
plt.show() 

enter image description here

更多的設置