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í)現(xiàn)SMTP郵件發(fā)送
這篇文章主要介紹了基于python實(shí)現(xiàn)SMTP發(fā)送郵件教程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06python3實(shí)現(xiàn)語音轉(zhuǎn)文字(語音識(shí)別)和文字轉(zhuǎn)語音(語音合成)
這篇文章主要介紹了python3實(shí)現(xiàn)語音轉(zhuǎn)文字(語音識(shí)別)和文字轉(zhuǎn)語音(語音合成),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Python3之不使用第三方變量,實(shí)現(xiàn)交換兩個(gè)變量的值
今天小編就為大家分享一篇Python3之不使用第三方變量,實(shí)現(xiàn)交換兩個(gè)變量的值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06Pycharm+django2.2+python3.6+MySQL實(shí)現(xiàn)簡單的考試報(bào)名系統(tǒng)
這篇文章主要介紹了Pycharm+django2.2+python3.6+MySQL實(shí)現(xiàn)簡單的考試報(bào)名系統(tǒng),本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09淺析python中numpy包中的argsort函數(shù)的使用
這篇文章主要介紹了python中numpy包中的argsort函數(shù)的使用,argsort()函數(shù)在模塊numpy.core.fromnumeric中,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2018-08-08pyqt5 tablewidget 利用線程動(dòng)態(tài)刷新數(shù)據(jù)的方法
今天小編就為大家分享一篇pyqt5 tablewidget 利用線程動(dòng)態(tài)刷新數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python高級(jí)特性——詳解多維數(shù)組切片(Slice)
今天小編就為大家分享一篇Python高級(jí)特性——詳解多維數(shù)組切片(Slice),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11