Как создать белое изображение в Python?

После выполнения моей домашней работы я наткнулся на проблему, связанную с Python и манипулированием изображениями. Должен сказать, использование образа lib не является вариантом. Итак, здесь

from scipy.misc import imread,imsave
from numpy import zeros

imga = zeros([100,100,3])
h = len(imga)
w = len(imga[0])

for y in range(h):
    for x in range(w):
        imga[y,x] = [255,255,255]

imsave("Result.jpg",imga)

Я бы предположил, что это делает мою фотографию белой, но она становится черной, и я понятия не имею, почему Это не о коде (и я знаю, что это выглядит очень уродливо). Это как раз тот факт, что это черный образ.

Ответ 1

Каждый цвет изображения представлен одним байтом. Итак, чтобы создать массив изображений, вы должны установить его dtype в uint8.

И вам не нужно, чтобы для цикла для каждого элемента было 255, вы можете использовать метод fill() или индекс среза:

import numpy as np
img = np.zeros([100,100,3],dtype=np.uint8)
img.fill(255) # or img[:] = 255

Ответ 2

При создании imga вам необходимо установить тип устройства. В частности, измените следующую строку кода:

imga = zeros([100,100,3], dtype=np.uint8)

И добавьте в свой импорт следующее:

import numpy as np

Это дает белое изображение на моей машине.

Ответ 3

Легко! Проверьте код ниже:

whiteFrame = 255 * np.ones((1000,1000,3), np.uint8)

255 - цвет для заполнения байтов.

1000, 1000 - размер изображения.

3 - цветовой канал для изображения.

И unit8 это тип

Удачи