SystemError: formato de getargs de nuevo estilo, pero el argumento no es una tupla [relacionado con putpixel (xy, value)]

Systemerror New Style Getargs Format Argument Is Not Tuple Related Putpixel Xy

Hoy, estoy estudiando en la universidad china mooc. Aplicación de aprendizaje automático Python (Lixin, Songtian) Cuando la reducción de la dimensionalidad en el proceso de extracción de características de la imagen de la cara, encontré un pequeño problema, pero después de buscar, hay pocas medidas para lidiar con este problema en Internet. Compartiré un poco sobre esto.
Primero, las imágenes que deben usarse son:
imagen

|_+_|

Hay un problema al ejecutar el código anterior.

Archivo “… lib site-packages PIL Image.py”, línea 1641, en import numpy as np import PIL.Image as image from sklearn.cluster import KMeans def loadData(filePath): f = open(filePath,'rb') # Open the file in binary form data = [] img = image.open(f) # Return image pixel value in list form m,n = img.size for i in range(m): # Process each pixel RGB color to 0-1 for j in range(n): # Store in data in the range x,y,z = img.getpixel((i,j)) # Get the value of a certain pixel position data.append([x/256,y/256,z/256]) f.close() return np.mat(data),m,n #Return data in matrix form, and the size of the picture imgData,row,col = loadData('bull.jpg') label = KMeans(n_clusters=4).fit_predict(imgData) label = label.reshape([row,col]) pic_new = image.new('L', (row, col)) for i in range(row): for j in range(col): pic_new.putpixel((i,j),256 / (label[i][j] + 1)) pic_new.save('result-bull-4.jpg', 'JPEG')
return self.im. putpixel


|_+_|



Puede verse que el enunciado del problema es:



pic_new.putpixel ((i, j), 256 / (etiqueta [i] [j] +1))

La solución es convertir 256 / (etiqueta [i] [j] +1) en tipo int

pic_new.putpixel ((i, j), int (256 / (etiqueta [i] [j] +1)))



Después de la modificación, ejecute el código correcto anterior para obtener:
imagen