def rgb2hsv(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.) # h, s, v = colorsys.rgb_to_yiq(rd / 255., gn / 255., bl / 255.) # h, s, v = colorsys.rgb_to_hls(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)) return r, g, b else: return None def rgb2hls(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, l, s = colorsys.rgb_to_hls(rd / 255., gn / 255., bl / 255.) # h, s, v = colorsys.rgb_to_yiq(rd / 255., gn / 255., bl / 255.) # h, s, v = colorsys.rgb_to_hls(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)) return r, g, b else: return None def rgb2yuv(img): if isinstance(img, Image.Image): r, g, b = img.split() Ydat = [] Udat = [] Vdat = [] for rd, gn, bl in zip(r.getdata(), g.getdata(), b.getdata()): y = 0.3 * rd + 0.59 * gn + 0.11 * bl u = -0.15 * rd + -0.29 * gn + 0.44 * bl v = 0.51 * rd + 0.52 * gn + -0.095 * bl Ydat.append(int(y)) Udat.append(int(u)) Vdat.append(int(v)) r.putdata(Ydat) g.putdata(Udat) b.putdata(Vdat) return r, g, b else: return None
|
近期评论