Python圖像處理庫(kù)PIL的ImageFilter模塊使用介紹
ImageFilter模塊提供了濾波器相關(guān)定義;這些濾波器主要用于Image類的filter()方法。
一、ImageFilter模塊所支持的濾波器
當(dāng)前的PIL版本中ImageFilter模塊支持十種濾波器:
1、 BLUR
ImageFilter.BLUR為模糊濾波,處理之后的圖像會(huì)整體變得模糊。
例子:
>>> from PIL importImageFilter >>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im = im02.filter(ImageFilter.BLUR)
圖像im02為原始圖像,如下:
圖像im為模糊濾波之后的圖像,明顯比原始圖像模糊了一些,見下圖:
2、 CONTOUR
ImageFilter.CONTOUR為輪廓濾波,將圖像中的輪廓信息全部提取出來。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im= im02.filter(ImageFilter.CONTOUR)
圖像im為輪廓圖像,如下圖:
3、 DETAIL
ImageFilter.DETAIL為細(xì)節(jié)增強(qiáng)濾波,會(huì)使得圖像中細(xì)節(jié)更加明顯。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im= im02.filter(ImageFilter.DETAIL)
圖像im為細(xì)節(jié)增強(qiáng)后的圖像,如下圖:
4、 EDGE_ENHANCE
ImageFilter.EDGE_ENHANCE為邊緣增強(qiáng)濾波,突出、加強(qiáng)和改善圖像中不同灰度區(qū)域之間的邊界和輪廓的圖像增強(qiáng)方法。經(jīng)處理使得邊界和邊緣在圖像上表現(xiàn)為圖像灰度的突變,用以提高人眼識(shí)別能力。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im= im02.filter(ImageFilter.EDGE_ENHANCE)
圖像im為邊緣增強(qiáng)后的圖像,如下圖:
5、 EDGE_ENHANCE_MORE
ImageFilter.EDGE_ENHANCE_MORE為深度邊緣增強(qiáng)濾波,會(huì)使得圖像中邊緣部分更加明顯。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im= im02.filter(ImageFilter.EDGE_ENHANCE_MORE)
圖像im為深度邊緣增強(qiáng)后的圖像,如下圖:
6、EMBOSS
ImageFilter.EMBOSS為浮雕濾波,會(huì)使圖像呈現(xiàn)出浮雕效果。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im= im02.filter(ImageFilter.EMBOSS)
圖像im為浮雕效果的圖像,如下圖:
7、 FIND_EDGES
ImageFilter.FIND_EDGES為尋找邊緣信息的濾波,會(huì)找出圖像中的邊緣信息。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im= im02.filter(ImageFilter.FIND_EDGES)
圖像im為邊緣信息的圖像,如下圖:
8、 SMOOTH
ImageFilter.SMOOTH為平滑濾波,突出圖像的寬大區(qū)域、低頻成分、主干部分或抑制圖像噪聲和干擾高頻成分,使圖像亮度平緩漸變,減小突變梯度,改善圖像質(zhì)量。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im= im02.filter(ImageFilter.SMOOTH)
圖像im為平滑濾波的圖像,如下圖:
9、 SMOOTH_MORE
ImageFilter.SMOOTH_MORE為深度平滑濾波,會(huì)使得圖像變得更加平滑。
例子:
>>> from PIL importImageFilter >>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im =im02.filter(ImageFilter.SMOOTH_MORE)
圖像im為深度平滑濾波的圖像,如下圖:
10、SHARPEN
ImageFilter.SHARPEN為銳化濾波,補(bǔ)償圖像的輪廓,增強(qiáng)圖像的邊緣及灰度跳變的部分,使圖像變得清晰。
例子:
>>>from PIL import ImageFilter >>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im =im02.filter(ImageFilter.SHARPEN)
圖像im為銳化濾波的圖像,如下圖:
二、ImageFilter模塊的函數(shù)
1、 Kernel
定義:Kernel(size,kernel, scale=None, offset=0)
含義:(New in 1.1.5)生成一個(gè)給定尺寸的卷積核。在當(dāng)前的版本中,變量size必須為(3,3)或者(5,5)。變量kernel與變量size對(duì)應(yīng)地必須為包含9個(gè)或者25個(gè)整數(shù)或者浮點(diǎn)數(shù)的序列。
如果設(shè)置了變量scale,那將卷積核作用于每個(gè)像素值之后的數(shù)據(jù),都需要除以這個(gè)變量。默認(rèn)值為卷積核的權(quán)重之和。
如果設(shè)置變量offset,這個(gè)值將加到卷積核作用的結(jié)果上,然后再除以變量scale。
例子:
>>>from PIL import ImageFilter >>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im=im02.filter(ImageFilter.Kernel((3,3),(1,1,1,0,0,0,2,0,2)))
圖像im為經(jīng)過卷積核處理過的圖像,如下圖:
2、 RankFilter
定義:RankFilter(size,rank)
含義:(New in 1.1.5)生成給定尺寸的等級(jí)濾波器。對(duì)于輸入圖像的每個(gè)像素點(diǎn),等級(jí)濾波器根據(jù)像素值,在(size,size)的區(qū)域中對(duì)所有像素點(diǎn)進(jìn)行排序,然后拷貝對(duì)應(yīng)等級(jí)的值存儲(chǔ)到輸出圖像中。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im=im02.filter(ImageFilter.RankFilter(5,24))
圖像im為等級(jí)濾波后的圖像,在每個(gè)像素點(diǎn)為中心的5x5區(qū)域25個(gè)像素點(diǎn)中選擇排序第24位的像素作為新的值。如下圖:
3、 MinFilter
定義:MinFilter(size=3)
含義:(New in 1.1.5)生成給定尺寸的最小濾波器。對(duì)于輸入圖像的每個(gè)像素點(diǎn),該濾波器從(size,size)的區(qū)域中拷貝最小的像素值存儲(chǔ)到輸出圖像中。
例子:
>>> from PIL importImageFilter >>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im=im02.filter(ImageFilter.MinFilter(5))
圖像im為最小濾波后的圖像,在每個(gè)像素點(diǎn)為中心的5x5區(qū)域25個(gè)像素點(diǎn)中選擇最小的像素作為新的值。如下圖:
4、 MedianFilter
定義:MedianFilter(size=3)
含義:(New in 1.1.5)生成給定尺寸的中值濾波器。對(duì)于輸入圖像的每個(gè)像素點(diǎn),該濾波器從(size,size)的區(qū)域中拷貝中值對(duì)應(yīng)的像素值存儲(chǔ)到輸出圖像中。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im=im02.filter(ImageFilter.MedianFilter(5))
圖像im為中值濾波后的圖像,在每個(gè)像素點(diǎn)為中心的5x5區(qū)域25個(gè)像素點(diǎn)中選擇中值作為新的值。如下圖:
5、 MaxFilter
定義:MaxFilter(size=3)
含義:(New in 1.1.5)生成給定尺寸的最大濾波器。對(duì)于輸入圖像的每個(gè)像素點(diǎn),該濾波器從(size,size)的區(qū)域中拷貝最大的像素值存儲(chǔ)到輸出圖像中。
例子:
>>>from PIL import ImageFilter >>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im=im02.filter(ImageFilter.MaxFilter(5))
圖像im為最大濾波后的圖像,在每個(gè)像素點(diǎn)為中心的5x5區(qū)域25個(gè)像素點(diǎn)中選擇最大的像素作為新的值。如下圖:
6、 ModeFilter
定義:ModeFilter(size=3)
含義:(New in 1.1.5)生成給定尺寸的模式濾波器。對(duì)于輸入圖像的每個(gè)像素點(diǎn),該濾波器從(size,size)的區(qū)域中拷貝出現(xiàn)次數(shù)最多的像素值存儲(chǔ)到輸出圖像中。如果沒有一個(gè)像素值出現(xiàn)過兩次極其以上,則使用原始像素值。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im=im02.filter(ImageFilter.ModeFilter(5))
圖像im為模式濾波后的圖像,在每個(gè)像素點(diǎn)為中心的5x5區(qū)域25個(gè)像素點(diǎn)中選擇出現(xiàn)次數(shù)最多的像素作為新的值。如下圖:
以上就是Python圖像處理庫(kù)PIL的ImageFilter模塊使用介紹的詳細(xì)內(nèi)容,更多關(guān)于PIL ImageFilter模塊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
anaconda升級(jí)sklearn版本的實(shí)現(xiàn)方法
這篇文章主要介紹了anaconda升級(jí)sklearn版本的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02python上下文管理器協(xié)議的實(shí)現(xiàn)
這篇文章主要介紹了python上下文管理器協(xié)議的實(shí)現(xiàn),在python中所有實(shí)現(xiàn)了上下文管理器協(xié)議的對(duì)象 都可以用使用with操作,with啟動(dòng)了對(duì)象的上下文管理器2022-06-0610分鐘教你用python動(dòng)畫演示深度優(yōu)先算法搜尋逃出迷宮的路徑
這篇文章主要介紹了10分鐘教你用python動(dòng)畫演示深度優(yōu)先算法搜尋逃出迷宮的路徑,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08python制作可視化GUI界面自動(dòng)分類管理文件
這篇文章主要為大家介紹了python制作可視化GUI界面實(shí)現(xiàn)自動(dòng)分類管理文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05python爬蟲項(xiàng)目設(shè)置一個(gè)中斷重連的程序的實(shí)現(xiàn)
這篇文章主要介紹了python爬蟲項(xiàng)目設(shè)置一個(gè)中斷重連的程序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07解決python字典對(duì)值(值為列表)賦值出現(xiàn)重復(fù)的問題
今天小編就為大家分享一篇解決python字典對(duì)值(值為列表)賦值出現(xiàn)重復(fù)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01Django Rest framework認(rèn)證組件詳細(xì)用法
這篇文章主要介紹了Django Rest framework認(rèn)證組件詳細(xì)用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07