今天学习一段转换色彩空间(RGB->HLS)的代码,我觉得这段代码比较能学习到很多新的东西,刚好最近在写一些关于图像处理的Python的代码,就把写的一段分享一下。
import glob,os
filelist = glob.glob('./*.jpg') + glob.glob('./*.bmp') #导入当前文件夹中的所有jpg或bmp格式图片
#也可以用filelist = os.listdir('./'),但是这里我们只希望获取某些类型的文件,glob显得智能很多
#convert rgb to hsv color space
def rgb2hls(img):
r,g,b = img.split() #分离三个通道
Hdat = []
Ldat = []
Sdat = []
for rd,gn,bl in zip(r.getdata(),g.getdata(),b.getdata()): #zip为内建函数,每个for取出一个像素的rgb值
h,l,s = colorsys.rgb_to_hls(rd/255.,gn/255.,bl/255.)
Hdat.append(int(h*255.))
Ldat.append(int(l*255.))
Sdat.append(int(s*255.))
r.putdata(Hdat) #将List放入Image对象
g.putdata(Ldat)
b.putdata(Sdat)
newimg = Image.merge('RGB',(r,g,b)) #合并三个通道
return [r, g, b]</pre>
if __name__ == '__main__':
color = ['h','l',