我已经看到一些将RGB转换为HSL的代码;但是如何在python中快速完成。
对我来说很奇怪,例如,Photoshop会在一秒钟内在图像上执行此操作,而在python中,这通常需要永远。至少我使用的代码;所以认为我使用错误的代码来做到这一点
在我的情况下,我的图像是一个简单但很大的原始数组[r,g,b,r,g,b,r,g,b ....]
我希望这是[h,s,l,h,s,l,h,s,l .......]
此外,我希望能够做到hgl到rgb
图像实际为640x 480像素; 是否需要一些库或c代码包装器(我从未创建过包装器)来快速完成它?
答案 0 :(得分:6)
对于操纵图像数据,许多人使用Python Imaging Library。但是,它不处理HSL颜色。幸运的是,Python附带了一个名为colorsys
的库。以下是colorsys
用于在每个像素级别上转换颜色模式的示例:http://effbot.org/librarybook/colorsys.htm
colorsys
还提供了将HSL转换为RGB的函数:http://docs.python.org/library/colorsys.html
答案 1 :(得分:3)
我在一段时间后写了RGB to HSV converter。它以PIL图像开始,但使用numpy来有效地执行数组操作。它可以很容易地修改为HSL。如果您想要修改版本,请告诉我。
答案 2 :(得分:1)
一种选择是使用OpenCV。他们的Python绑定非常好(虽然不是很棒)。好处是它是一个非常强大的库,所以这只是冰山一角。
你也可以使用numpy非常有效地完成这项工作。