我有一个脚本,它使用 Google Maps API 下载一系列大小相等的方形卫星图像并生成 PDF。图像需要事先旋转,我已经使用 PIL 这样做了。
我注意到,由于光线和地形条件不同,有些图像太亮,有些图像太暗,生成的pdf结果有点难看,“在野外”(即偏远地区)的阅读条件不太理想山地自行车,我想要打印特定十字路口的缩略图)。
(编辑)然后的目标是使所有图像最终具有相似的表观亮度和对比度。因此,太亮的图像必须变暗,而太暗的图像必须变亮。 (顺便说一下,我曾经使用过imagemagickautocontrast
, or auto-gamma
, or equalize
, or autolevel
,或类似的东西,在医学图像中产生有趣的结果,但不知道如何在 PIL 中执行这些操作)。
转换为灰度后我已经使用了一些图像校正(以前有一台灰度打印机),但结果也不好。这是我的灰度代码:
#!/usr/bin/python
def myEqualize(im)
im=im.convert('L')
contr = ImageEnhance.Contrast(im)
im = contr.enhance(0.3)
bright = ImageEnhance.Brightness(im)
im = bright.enhance(2)
#im.show()
return im
该代码对每个图像独立工作。我想知道是否最好先分析所有图像,然后“标准化”它们的视觉属性(对比度、亮度、伽玛等)。
另外,我认为有必要在图像中执行一些分析(直方图?),以便根据每个图像应用自定义校正,而不是对所有图像进行相同的校正(尽管任何“增强”函数隐含地考虑初始条件)。
有人遇到过这样的问题和/或知道一个好的替代方法来处理彩色图像(无灰度)吗?
任何帮助将不胜感激,感谢您的阅读!