我有一個腳本,它使用Google Maps API下載等大小的方形衛星圖像序列並生成PDF。圖像需要事先旋轉,我已經使用PIL來完成。使用Python圖像庫(PIL)規範化一組圖像的直方圖(亮度和對比度)
我注意到,由於不同的光照和地形條件,一些圖像太亮,另一些太暗,並且由此產生的pdf變得有點醜陋,「在現場」的讀數條件不甚理想(這是窮鄉僻壤的山地自行車,我想在這裏打印特定十字路口的縮略圖)。
(編輯)接下來的目標是讓所有圖像都具有相似的亮度和對比度。所以,太亮的圖像必須變暗,黑暗的圖像必須變亮。 (順便說一句,我曾經使用imagemagick autocontrast
或auto-gamma
或equalize
或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
此代碼獨立運行,爲每個圖像。我想知道是不是先分析所有圖像然後「歸一化」它們的視覺特性(對比度,亮度,伽瑪等)會更好。
此外,我認爲有必要對圖像進行一些分析(直方圖?),以便根據每幅圖像應用自定義校正,而不是對所有圖像進行相同校正(儘管任何「增強「功能隱含地考慮初始接頭)。
有沒有人有這樣的問題和/或知道一個很好的替代方案與彩色圖像(無灰度)做到這一點?
任何幫助將不勝感激,謝謝閱讀!
好問題!但是需要澄清一些情況。另外,張貼示例圖像對於人們用作測試用例會非常有幫助。首先,下載它們時,瓷磚邊緣不匹配的問題是什麼?或者你正在尋找一種方法來使黑暗的瓷磚變亮,並讓明亮的瓷磚變暗?或者你需要做後者,同時保持邊緣的連續性? – Paul
邊緣不是問題,因爲圖像集不是連續的。正如你所說,目標是使最亮的部分變暗並使黑暗的部分變亮。 – heltonbiker