web-dev-qa-db-fra.com

Comment créer une image blanche dans Python?

En faisant mes devoirs, je suis tombé sur un problème concernant Python et manipulation d'image. Je dois dire que l'utilisation de l'image lib n'est pas une option. Alors voici

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)

Je suppose que cela fait de ma photo blanche, mais ça tourne le noir et je ne sais pas pourquoi il ne s'agit pas du code (et je sais que ça a l'air très laid). C'est à peu près le fait que c'est une image noire.

19
Lefix

Chaque couleur d'une image est représentée par un octet. Donc, pour créer un tableau d'images, vous devez définir le DTYPE sur UINT8.

Et, vous n'avez pas besoin de boucle pour définir tous les éléments à 255, vous pouvez utiliser la méthode de remplissage () ou l'index de la tranche:

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

Lors de la création d'IMGA, vous devez définir le type d'unité. Plus précisément, changez la ligne de code suivante:

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

Et, ajouter ce qui suit à vos importations:

import numpy as np

Cela donne une image blanche sur ma machine.

2
Sam Cantrell

Facile! Vérifiez le code ci-dessous:

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

255 est la couleur pour remplir les octets.

1000, 1000 est la taille de l'image.

3 est le canal de couleur pour l'image.

Et unit8 est le type

Bonne chance

1
Etezadi