【发布时间】:2011-06-01 01:50:06
【问题描述】:
我正在尝试自动增强某些要传输到数码相框的图像。我有代码可以调整大小,将日期/时间添加到图像最不重要(最少细节)的角落,并将成对的肖像图像粘贴在一起,以避免在框架的 41:20 低分辨率屏幕上显示单个肖像。
我已经为那些光线不太好的图片实现了一个亮度拉伸滤镜,使用colorsys.rgb_to_hsv 函数来计算 H、S、V 波段,在 V 波段上运行,然后转换回 RGB在数码相框中保存 JPEG 之前。显然,转换需要很多时间,即使使用itertools技巧;我设法使用psyco 改进了一些东西。
但是,我注意到 PIL Image.convert 的一个示例,其中 RGB 可以使用 4×4 矩阵作为 convert 方法的第二个参数转换为 XYZ color space,我想知道:
如何在 convert 方法调用中使用自定义矩阵将 RGB 转换为 HSV(然后将 HSV 转换回 RGB)? (在这种情况下,较小的舍入误差并不重要,所以我不介意每个波段将表示为一系列 0…255 整数)
提前谢谢你。
【问题讨论】:
-
注:有可能我所做的也可以通过
ImageOps.autocontrast函数来完成;但是,我希望能够根据需要扩展过滤器(例如,可能会增加一点饱和度),这就是为什么我想要一个快速的 RGB↔HSV 方法)。
标签: python python-imaging-library color-space