純Python綜合圖像處理小工具(2)圖像增強


<背景>

這次分享的腳本是對圖像進行增強處理,包含對圖像像素的色彩增強、亮度增強、對比度增強、圖像尖銳化等增強操作,主要基於PIL包的lambda和ImageEnhance模塊。

使用方法和上一貼一樣,本文腳本進行了多項功能的集成,一鍵完成所有處理,圖像會即刻顯示處理后的效果,並全部保存成特定名稱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代表圖像增強強度參數; 

img_enhance_color.show("Color %f" %factor)顯示圖像增強效果;
img_enhance_color.save("Color_%.2f.jpg" %factor) 保存增強后的圖像。

 

  <全部源碼> 

# start
#
 -*- 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM