Pillow 圖像增強(qiáng)

2021-07-06 11:55 更新

python圖像庫提供了許多方法和模塊,可以用來增強(qiáng)圖像。

過濾器

這個(gè) ?ImageFilter ?模塊包含許多預(yù)定義的增強(qiáng)過濾器,可用于? filter() ?方法。

應(yīng)用篩選器

from PIL import ImageFilter
out = im.filter(ImageFilter.DETAIL)

點(diǎn)操作

這個(gè) ?point()? 方法可用于轉(zhuǎn)換圖像的像素值(例如圖像對(duì)比度操作)。在大多數(shù)情況下,需要一個(gè)參數(shù)的函數(shù)對(duì)象可以傳遞給這個(gè)方法。每個(gè)像素都根據(jù)該功能進(jìn)行處理:

應(yīng)用點(diǎn)變換

# multiply each pixel by 1.2
out = im.point(lambda i: i * 1.2)

使用上述技術(shù),您可以快速地將任何簡(jiǎn)單表達(dá)式應(yīng)用于圖像。您也可以將 ?point()? 和 ?paste()? 有選擇地修改圖像的方法:

處理單個(gè)波段

# split the image into individual bands
source = im.split()

R, G, B = 0, 1, 2

# select regions where red is less than 100
mask = source[R].point(lambda i: i < 100 and 255)

# process the green band
out = source[G].point(lambda i: i * 0.7)

# paste the processed band back, but only where red was < 100
source[G].paste(out, None, mask)

# build a new multiband image
im = Image.merge(im.mode, source)

注意用于創(chuàng)建掩碼的語法:

imout = im.point(lambda i: expression and 255)

python只計(jì)算邏輯表達(dá)式中確定結(jié)果所必需的部分,并返回作為表達(dá)式結(jié)果檢查的最后一個(gè)值。因此,如果上面的表達(dá)式為false(0),python不會(huì)查看第二個(gè)操作數(shù),因此返回0。否則,返回255。

增強(qiáng)

對(duì)于更高級(jí)的圖像增強(qiáng),可以使用 ?ImageEnhance ?模塊。從圖像創(chuàng)建后,可以使用增強(qiáng)對(duì)象快速嘗試不同的設(shè)置。

您可以通過這種方式調(diào)整對(duì)比度、亮度、顏色平衡和清晰度。

增強(qiáng)圖像

from PIL import ImageEnhance

enh = ImageEnhance.Contrast(im)
enh.enhance(1.3).show("30% more contrast")


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)