2017-01-12 4 views
-1

Это 20 x 20 пикселей изображение zerozero которой изображение хранится в массиве размером 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