您好,登錄后才能下訂單哦!
本文實例講述了Python圖像濾波處理操作。分享給大家供大家參考,具體如下:
在圖像處理中,經常需要對圖像進行平滑、銳化、邊界增強等濾波處理。在使用PIL圖像處理庫時,我們通過Image類中的成員函數filter()
來調用濾波函數對圖像進行濾波,而濾波函數則通過ImageFilter類來定義的。
下面先直接看一個樣例:
#-*- coding: UTF-8 -*- from PIL import Image from PIL import ImageFilter def image_filters_test(): im = Image.open("lena.jpg") #預定義的圖像增強濾波器 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類中預定義了如下濾波方法:
• BLUR:模糊濾波
• CONTOUR:輪廓濾波
• DETAIL:細節濾波
• EDGE_ENHANCE:邊界增強濾波
• EDGE_ENHANCE_MORE:邊界增強濾波(程度更深)
• EMBOSS:浮雕濾波
• FIND_EDGES:尋找邊界濾波
• SMOOTH:平滑濾波
• SMOOTH_MORE:平滑濾波(程度更深)
• SHARPEN:銳化濾波
• GaussianBlur(radius=2):高斯模糊
>radius指定平滑半徑。
• UnsharpMask(radius=2, percent=150, threshold=3):反銳化掩碼濾波
>radius指定模糊半徑;
>percent指定反銳化強度(百分比);
>threshold控制被銳化的最小亮度變化。
• Kernel(size, kernel, scale=None, offset=0):核濾波
當前版本只支持核大小為3x3和5x5的核大小,且圖像格式為“L”和“RGB”的圖像。
>size指定核大小(width, height);
>kernel指定核權值的序列;
>scale指定縮放因子;
>offset指定偏移量,如果使用,則將該值加到縮放后的結果上。
• RankFilter(size, rank):排序濾波
>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):波形濾波器
選取核內出現頻次最高的像素值作為該點像素值,僅出現一次或兩次的像素將被忽略,若沒有像素出現兩次以上,則保留原像素值。
>size指定核的大小
原圖lena.jpg如下:
上例的濾波處理結果如下:
更多關于Python相關內容可查看本站專題:《Python數學運算技巧總結》、《Python圖片操作技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。