Как создать белое изображение в 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
это тип
Удачи