我想在Python中實現這個功能(改變HSL的顏色化勾選),最好使用PIL或可能numpy。Python:想要改變圖像HSL像photoshop
有人能解釋這是如何工作?
據我所知,是使用內置函數color_to_hsl獲取hsl值,改變它,然後將ti轉換回rgb,最後寫入單個像素。
任何線索讓它更接近?
我想在Python中實現這個功能(改變HSL的顏色化勾選),最好使用PIL或可能numpy。Python:想要改變圖像HSL像photoshop
有人能解釋這是如何工作?
據我所知,是使用內置函數color_to_hsl獲取hsl值,改變它,然後將ti轉換回rgb,最後寫入單個像素。
任何線索讓它更接近?
from PIL import Image
import colorsys
def colorize(im, h, s, l_adjust):
h /= 360.0
s /= 100.0
l_adjust /= 100.0
if im.mode != 'L':
im = im.convert('L')
result = Image.new('RGB', im.size)
pixin = im.load()
pixout = result.load()
for y in range(im.size[1]):
for x in range(im.size[0]):
l = pixin[x, y]/255.99
l += l_adjust
l = min(max(l, 0.0), 1.0)
r, g, b = colorsys.hls_to_rgb(h, l, s)
r, g, b = int(r * 255.99), int(g * 255.99), int(b * 255.99)
pixout[x, y] = (r, g, b)
return result
非常感謝!我是圖像處理的初學者,將來會有更多的圖像處理需要我做。你介意在這個領域分享一些鏈接/書籍嗎? – user469652
@ user469652,我不確定我可以幫助任何教材,因爲多年來我只是零碎地拾起它。我很好奇,因爲我沒有Photoshop,我的例子是否與它出現的相匹配? –
隨着彩色化選中複選框,我想你與灰度值從原來的圖像亮度工作,直接設置色調和飽和度的對話框中顯示。對不起,我沒有時間留下答案,但這確實很簡單。 –
相關:http://stackoverflow.com/questions/6845374/how-to-colorize-via-hsl-colors/ –