J'ai une image RVB. Je veux le convertir en tableau numpy. j'ai fait ce qui suit
im = cv.LoadImage("abc.tiff")
a = numpy.asarray(im)
Il crée un tableau sans forme. Je suppose que c'est un objet iplimage.
J'ai une image RVB. Je veux le convertir en tableau numpy. j'ai fait ce qui suit
im = cv.LoadImage("abc.tiff")
a = numpy.asarray(im)
Il crée un tableau sans forme. Je suppose que c'est un objet iplimage.
PIL (Python Imaging Library) et Numpy fonctionnent bien ensemble.
J'utilise les fonctions suivantes.
from PIL import Image
import numpy as np
def load_image( infilename ) :
img = Image.open( infilename )
img.load()
data = np.asarray( img, dtype="int32" )
return data
def save_image( npdata, outfilename ) :
img = Image.fromarray( np.asarray( np.clip(npdata,0,255), dtype="uint8"), "L" )
img.save( outfilename )
Le 'Image.fromarray' est un peu moche parce que je coupe les données entrantes à [0,255], les convertit en octets, puis crée une image en niveaux de gris. Je travaille principalement en gris.
Une image RVB serait quelque chose comme :
outimg = Image.fromarray( ycc_uint8, "RGB" )
outimg.save( "ycc.tif" )
Vous pouvez également utiliser matplotlib pour cela.
from matplotlib.image import imread
img = imread('abc.tiff')
print(type(img))
production:
<class 'numpy.ndarray'>
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.