RGB zu HSV per PIL und colorsys
Ich geschrieben habe, eine Funktion, die konvertiert ein Bild von RGB - > HSV. Allerdings, wenn ich das neue Bild das einzige was ich bekomme ist ein Schwarzes Bild. Was soll ich beheben, um es gelöst bekommen?
Jede Hilfe ist herzlich willkommen!
Mein 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
Sobald Sie beheben Sie den Tippfehler (
Oh ja!! Schreibfehler ist eine Konsequenz daraus, bleiben bis spät
Image
sollte Image.Image
, l*255
sollte s*255
und s*255
sollte v*255
) es funktioniert für mich.Oh ja!! Schreibfehler ist eine Konsequenz daraus, bleiben bis spät
InformationsquelleAutor bolzano | 2014-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht mischen Sie das Modul
Image
und seiner KlasseImage
?Der folgende code funktioniert für mich (ändern Sie die
isinstance(img,Image.Image)
Teil):InformationsquelleAutor fredtantini
Nur zur info, mit einer aktuellen Kopie des Kissen sollte man wohl verwenden
Laut der docs dies wird nicht unterstützt: Kissen.readthedocs.io/de/4.1.x/Referenz/...
Die docs nur sagen, alle möglichen Konvertierungen zwischen RGB, CYMK und L-Modi werden unterstützt. Für andere Umwandlungen ist die Unterstützung begrenzt, z.B. RGB → HSV arbeitet in der Erwägung, dass L → HSV vielleicht auch nicht.
InformationsquelleAutor K3---rnc
ich denke, Sie werden versuchen, das Unmögliche zu tun, allerdings kann man die Transformation von rgb-in hsv-Farbe (und Umgekehrt) Werte, nach wikipedia jpg-Bilder können nur gespeichert werden, im rgb-oder cmyk-Modelle.
können Sie konvertieren Farben, aber die Farbe Modell von jpg-rgb. vielleicht png-oder gif-Format sein könnte, einen besseren Weg zu gehen, für diesen Anwendungsfall?
Nützliche Informationen, danke!
InformationsquelleAutor Tony Cronin