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

來源:互聯網
上載者:User

標籤:

<背景>

這次分享的指令碼是對映像進行增強處理,包含對映像像素的色彩增強、亮度增強、對比增強、映像尖銳利化等增強操作,主要基於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

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.