Получение ошибки преобразования типа в массив с использованием PIL - PullRequest
0 голосов
/ 07 февраля 2020
from PIL import Image
import numpy as np

pixels1 = Image.open('image.jpeg')

pixels = pixels1.load()

for i in range(pixels1.size[0]):
    for j in range(pixels1.size[1]):
        pixels[i,j] = (0, 0, 0)

pixels = np.asarray(pixels)
pixels = Image.fromarray(pixels)
pixels.show()

Я получаю эту ошибку

TypeError: Невозможно обработать этот тип данных: (1, 1), | O

1 Ответ

1 голос
/ 07 февраля 2020

Переменная pixels - это объект PixelAccess , используемый для доступа к отдельным пикселям. это не сами данные пикселей. если вы хотите увидеть измененное изображение, используйте переменную pixels1.

from PIL import Image
import numpy as np

pixels1 = Image.open('image.jpg')

pixels = pixels1.load()

for i in range(pixels1.size[0]):
    for j in range(pixels1.size[1]):
        pixels[i,j] = (0, 0, 0)

pixels = np.asarray(pixels1)
pixels = Image.fromarray(pixels)
pixels.show()

, однако я не уверен, почему вы преобразуете измененное изображение в массив, а затем снова в изображение, вы можете просто сделать pixels1.show() после l oop.

...