Python圖像濾波處理操作示例【基于ImageFilter類】
本文實(shí)例講述了Python圖像濾波處理操作。分享給大家供大家參考,具體如下:
在圖像處理中,經(jīng)常需要對(duì)圖像進(jìn)行平滑、銳化、邊界增強(qiáng)等濾波處理。在使用PIL圖像處理庫時(shí),我們通過Image類中的成員函數(shù)filter()來調(diào)用濾波函數(shù)對(duì)圖像進(jìn)行濾波,而濾波函數(shù)則通過ImageFilter類來定義的。
下面先直接看一個(gè)樣例:
#-*- coding: UTF-8 -*-
from PIL import Image
from PIL import ImageFilter
def image_filters_test():
im = Image.open("lena.jpg")
#預(yù)定義的圖像增強(qiáng)濾波器
im_blur = im.filter(ImageFilter.BLUR)
im_contour = im.filter(ImageFilter.CONTOUR)
im_min = im.filter(ImageFilter.MinFilter(3))
im.show()
im_blur.show()
im_contour.show()
im_min.show()
return
image_filters_test()
ImageFilter類中預(yù)定義了如下濾波方法:
• BLUR:模糊濾波
• CONTOUR:輪廓濾波
• DETAIL:細(xì)節(jié)濾波
• EDGE_ENHANCE:邊界增強(qiáng)濾波
• EDGE_ENHANCE_MORE:邊界增強(qiáng)濾波(程度更深)
• EMBOSS:浮雕濾波
• FIND_EDGES:尋找邊界濾波
• SMOOTH:平滑濾波
• SMOOTH_MORE:平滑濾波(程度更深)
• SHARPEN:銳化濾波
• GaussianBlur(radius=2):高斯模糊
>radius指定平滑半徑。
• UnsharpMask(radius=2, percent=150, threshold=3):反銳化掩碼濾波
>radius指定模糊半徑;
>percent指定反銳化強(qiáng)度(百分比);
>threshold控制被銳化的最小亮度變化。
• Kernel(size, kernel, scale=None, offset=0):核濾波
當(dāng)前版本只支持核大小為3x3和5x5的核大小,且圖像格式為“L”和“RGB”的圖像。
>size指定核大?。╳idth, height);
>kernel指定核權(quán)值的序列;
>scale指定縮放因子;
>offset指定偏移量,如果使用,則將該值加到縮放后的結(jié)果上。
• RankFilter(size, rank):排序?yàn)V波
>size指定濾波核的大??;
>rank指定選取排在第rank位的像素,若大小為0,則為最小值濾波;若大小為size * size / 2則為中值濾波;若大小為size * size - 1則為最大值濾波。
• MedianFilter(size=3):中值濾波
>size指定核的大小
• MinFilter(size=3):最小值濾波器
>size指定核的大小
• MaxFilter(size=3):最大值濾波器
>size指定核的大小
• ModeFilter(size=3):波形濾波器
選取核內(nèi)出現(xiàn)頻次最高的像素值作為該點(diǎn)像素值,僅出現(xiàn)一次或兩次的像素將被忽略,若沒有像素出現(xiàn)兩次以上,則保留原像素值。
>size指定核的大小
原圖lena.jpg如下:

上例的濾波處理結(jié)果如下:

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python圖片操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python數(shù)據(jù)分析與處理(一)--北京高考分?jǐn)?shù)線統(tǒng)計(jì)分析
這篇文章主要介紹了Python數(shù)據(jù)分析與處理北京高考分?jǐn)?shù)線統(tǒng)計(jì)分析,文章問繞Python數(shù)據(jù)分析與處理相關(guān)資料的介紹,展開對(duì)北京高考分?jǐn)?shù)線統(tǒng)計(jì)分析,需要的小伙伴可以參考一下2021-12-12
Python開發(fā)文字版密室逃脫游戲的實(shí)例(含代碼)
密室逃脫游戲是一種頗受歡迎的解謎類游戲,玩家通常需要通過觀察、推理、合作等方式解決一系列難題,以逃脫困境,在這篇博文中,我們將使用Python開發(fā)一個(gè)文字版密室逃脫游戲,旨在通過簡(jiǎn)單的文本交互來呈現(xiàn)游戲的趣味性與挑戰(zhàn)性2025-04-04
Python 創(chuàng)建空的list,以及append用法講解
今天小編就為大家分享一篇Python 創(chuàng)建空的list,以及append用法講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Python+Pygame實(shí)現(xiàn)海洋之神大冒險(xiǎn)游戲
這篇文章主要介紹了如何利用Python+Pygame自制一個(gè)海洋之神大冒險(xiǎn)游戲。規(guī)則是在海里收集魚骨頭,有些魚骨頭可以轉(zhuǎn)化為武器,用來攻擊敵人,感興趣的可以了解一下2022-08-08
詳解Python中__str__和__repr__方法的區(qū)別
這篇文章主要介紹了__str__和__repr__方法的區(qū)別 ,__str__和__repr__是基本的內(nèi)置方法,使用時(shí)的區(qū)別也是Python學(xué)習(xí)當(dāng)中的基礎(chǔ),需要的朋友可以參考下2015-04-04
python神經(jīng)網(wǎng)絡(luò)Pytorch中Tensorboard函數(shù)使用
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)Pytorch中Tensorboard常用函數(shù)的使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

