bol*_*ano 3 python rgb hsv python-imaging-library
我编写了一个从RGB> HSV转换图像的函数.但是,当我保存新图像时,我唯一得到的是黑色图像.我该怎么办才能解决它?
任何帮助都非常感谢!
我的代码:
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
Run Code Online (Sandbox Code Playgroud)
K3-*_*rnc 15
仅供参考,最近有一份枕头,应该可以使用
def rgb2hsv(image):
return image.convert('HSV')
Run Code Online (Sandbox Code Playgroud)
你没有混淆模块Image和它的类Image吗?
以下代码对我有用(更改部分isinstance(img,Image.Image)):
import Image, colorsys
def HSVColor(img):
if isinstance(img,Image.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(s*255.))
Vdat.append(int(v*255.))
r.putdata(Hdat)
g.putdata(Sdat)
b.putdata(Vdat)
return Image.merge('RGB',(r,g,b))
else:
return None
a = Image.open('/tmp/a.jpg')
b = HSVColor(a)
b.save('/tmp/b.jpg')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14936 次 |
| 最近记录: |