<背景>
使用方法和上一貼一樣,本文腳本進行了多項功能的集成,一鍵完成所有處理,圖像會即刻顯示處理后的效果,並全部保存成特定名稱jpeg。
下圖是對處理后的圖片的二維比較,為了更直觀地比較,將處理項(亮度,顏色,對比度,銳度)作為橫坐標,處理強度參數作為縱坐標(0,0.25,0.5,0.75,1)。當處理強度參數為1的時候,實際不對圖像進行任何修改。
<效果>
原圖:
處理后:
lambda增強40%(0.4)
<源碼分析>
本文用到的是PIL的圖像增強模塊,即ImageEnhance 模塊,這個模塊可以快速對圖像進行增強處理,包括色彩增強、亮度增強、對比度增強、圖像尖銳化等等增強操作,所有操作都有相同形式的接口。通過相應類的enhance方法實現:色彩增強通過Color類的enhance方法實現;亮度增強通過Brightness類的enhance方法實現;對比度增強通過Contrast類的enhance方法實現;尖銳化通過Sharpness類的enhance方法實現。所有的操作都需要向類的構造函數傳遞一個Image對象作為參數,這個參數定義了增強作用的對象。同時所有的操作都返回一個新的Image對象。
如果傳給enhance方法的參數是1.0,則不對原圖像做任何改變,直接返回原圖像的一個拷貝。
此外,lambda表達式可以(也僅限於)進行圖像的亮度增強, imgbri=img.point(lambda i : i*1.4),代表對原圖亮度增強40%。
irange代表圖像增強參數的調整范圍;istep代表圖像按照等步長增強后輸出的圖片張數;
factor代表圖像增強強度參數;
<全部源碼>
# -*- coding: cp936 -*-
# 阿瓦圖像村出品,轉載請注明出處
# QQ:576916092
import Image,ImageDraw
import ImageFilter,random,sys
import ImageEnhance
img = Image.open( " 1.jpg ")
# #圖像處理##
# 轉換為RGB圖像
img = img.convert( " RGB ")
# PIL圖像增強lambda
imgbri=img.point( lambda i : i*1.4) # 對每一個像素點進行增強
imgbri.save( " 1bri.jpg ")
imgbri.show()
# PIL圖像增強ImageEnhance
istep=4
irange=4.0
imgenhancer_Color=ImageEnhance.Color(img)
for i in range(istep):
factor=i/irange
img_enhance_color=imgenhancer_Color.enhance(factor)
img_enhance_color.show( " Color %f " %factor)
img_enhance_color.save( " Color_%.2f.jpg " %factor)
imgenhancer_Brightness=ImageEnhance.Brightness(img)
for i in range(istep):
factor=i/irange
img_enhance_Brightness=imgenhancer_Brightness.enhance(factor)
img_enhance_Brightness.show( " Brightness %f " %factor)
img_enhance_Brightness.save( " Brightness_%.2f.jpg " %factor)
imgenhancer_Contrast=ImageEnhance.Contrast(img)
for i in range(istep):
factor=i/irange
img_enhance_Contrast=imgenhancer_Contrast.enhance(factor)
img_enhance_Contrast.show( " Contrast %f " %factor)
img_enhance_Contrast.save( " Contrast_%.2f.jpg " %factor)
imgenhancer_Sharpness=ImageEnhance.Sharpness(img)
for i in range(istep):
factor=i/irange
img_enhance_Sharpness=imgenhancer_Sharpness.enhance(factor)
img_enhance_Sharpness.show( " Sharpness %f " %factor)
img_enhance_Sharpness.save( " Sharpness_%.2f.jpg " %factor)
# end