RVB à HSV via PIL et colorsys
J'ai écrit une fonction qui convertit une Image RVB > HSV. Cependant, quand j'ai enregistrer la nouvelle image la seule chose que j'obtiens c'est une image noire. Que dois-je fixer à le faire il résolu?
Toute aide est la bien appréciés!
Mon code:
def HSVColor(img):
if isinstance(img,Image):
r,g,b = img.split()
Hdat = []
Sdat = []
Vdat = []
for rd,gn,bl in zip(r.getdata(),g.getdata(),b.getdata()) :
h,s,v = colorsys.rgb_to_hsv(rd/255.,gn/255.,bl/255.)
Hdat.append(int(h*255.))
Sdat.append(int(l*255.))
Vdat.append(int(s*255.))
r.putdata(Hdat)
g.putdata(Sdat)
b.putdata(Vdat)
return Image.merge('RGB',(r,g,b))
else:
return None
Une fois que vous avez corrigé les fautes de frappe (
Oh oui!! L'insertion est une conséquence de rester jusqu'à la fin
Image
devrait être Image.Image
, l*255
devrait être s*255
et s*255
devrait être v*255
), il travaille pour moi.Oh oui!! L'insertion est une conséquence de rester jusqu'à la fin
OriginalL'auteur bolzano | 2014-03-06
Vous devez vous connecter pour publier un commentaire.
De ne pas vous mélanger le module
Image
et sa classeImage
?Le code suivant fonctionne pour moi (modifier la
isinstance(img,Image.Image)
partie):OriginalL'auteur fredtantini
Juste pour info, avec une copie récente de l'Oreiller, il faut sans doute utiliser
Selon les docs ce n'est pas pris en charge: oreiller.readthedocs.io/fr/4.1.x/de référence/...
Les docs juste dire toutes les conversions possibles entre RVB, CMJN et L sont les modes de prise en charge. Pour les autres conversions, le soutien est limité, par exemple RGB → HSV œuvres, tandis que L → HSV peut-être pas.
OriginalL'auteur K3---rnc
je pense que vous essayez de faire l'impossible, bien que vous pouvez transformer en rvb pour le hsv couleur (et vice versa) des valeurs, selon wikipédia jpg images ne peuvent être stockés en rgb ou cmyk.
vous pouvez convertir les couleurs, mais le modèle de couleur de jpg est rvb. peut-être, png ou gif animé peut être une meilleure façon d'aller pour ce cas d'utilisation?
Des informations utiles, merci!
OriginalL'auteur Tony Cronin