김프에서 색조와 채도를 쉽게 옮길 수 있습니다. 예를 들어 원래의 그림과 색조를 -90으로 설정하고 채도를 100으로 설정 한 후 최종 결과를 볼 수 있습니다.python PIL : 색조와 채도 이동
파이썬 PIL에서 동일한 결과를 얻으려면 어떻게해야합니까?
김프에서 색조와 채도를 쉽게 옮길 수 있습니다. 예를 들어 원래의 그림과 색조를 -90으로 설정하고 채도를 100으로 설정 한 후 최종 결과를 볼 수 있습니다.python PIL : 색조와 채도 이동
파이썬 PIL에서 동일한 결과를 얻으려면 어떻게해야합니까?
당신은 colorsys
모듈과 PIL
의 조합으로 그것을 할 수 있지만, 가지 느리다. colorsys
을 사용하면 색상 공간을 HSV로 변경하여 색조 및 채도 변경을 수행하는 것이 간단합니다. 귀하의 예를 대략 0.65의 제곱으로 채 웁니다. 중간 값을 증가시키면서 colorsys
에 필요한 0.0-1.0의 범위를 유지합니다.
import colorsys
from PIL import Image
im = Image.open(filename)
ld = im.load()
width, height = im.size
for y in range(height):
for x in range(width):
r,g,b = ld[x,y]
h,s,v = colorsys.rgb_to_hsv(r/255., g/255., b/255.)
h = (h + -90.0/360.0) % 1.0
s = s**0.65
r,g,b = colorsys.hsv_to_rgb(h, s, v)
ld[x,y] = (int(r * 255.9999), int(g * 255.9999), int(b * 255.9999))
나는 numpy 배열로 이미지를 변환 한 다음 matplotlib rgb_to_hsv 기능을 적용 추천 : http://matplotlib.org/api/colors_api.html#matplotlib.colors.rgb_to_hsv 그 방법은 당신이 아마 원인이되는 루프의 두 배를 방지 할 수 있습니다를 픽셀 부산물 픽셀 방법은 colorsys를 사용하여 느립니다.
유사한 질문 : http://stackoverflow.com/questions/7274221/changing-image-hue-with-python-pil –
서로 다릅니다. 내가 원한 것은 색조를 회전시키는 것입니다. – dridk