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.
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
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.
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