Reshape бросает ValueError: не может преобразовать массив размером 30000 в форму (100,100) - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь выполнить кластеризацию изображений Kmeans, но imshow(immean.reshape(m,n)) показывает ошибку

ValueError: невозможно преобразовать массив размером 30000 в форму (100,100)

from PIL import Image
from numpy import *
from pylab import *
import pca     #PCA FUNCTION
import imtools #IMTOOLS IMPLEMENTED
imlist = imtools.get_imlist('D:\\Bhavani\\phd\\python-book\\files\\tn') #GET_IMLIST IS IMPLEMENTED IN IMTOOLS
im = array(Image.open(imlist[0])) # open one image to get size
m,n = im.shape[0:2] # get the size of the images
imnbr = len(imlist) # get the number of images
# create matrix to store all flattened images
for im in imlist:
    immatrix = array([array(Image.open(im)).flatten()], 'f')
# perform PCA
V,S,immean = pca.pca(immatrix)
# show some images (mean and 7 first modes)
figure()
gray()
subplot(2,4,1)
imshow(immean.reshape(m,n))
for i in range(7):
  subplot(2,4,i+2)
  imshow(V[i].reshape(m,n))
show()
...