Python RGB数组到HSL并返回

时间:2011-02-25 00:26:11

标签: python c rgb

我已经看到一些将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代码包装器(我从未创建过包装器)来快速完成它?

3 个答案:

答案 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非常有效地完成这项工作。

相关问题