您好,登錄后才能下訂單哦!
ImageFilter模塊提供了濾波器相關定義;這些濾波器主要用于Image類的filter()方法。
一、ImageFilter模塊所支持的濾波器
當前的PIL版本中ImageFilter模塊支持十種濾波器:
1、 BLUR
ImageFilter.BLUR為模糊濾波,處理之后的圖像會整體變得模糊。
例子:
>>> 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為細節增強濾波,會使得圖像中細節更加明顯。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im= im02.filter(ImageFilter.DETAIL)
圖像im為細節增強后的圖像,如下圖:
4、 EDGE_ENHANCE
ImageFilter.EDGE_ENHANCE為邊緣增強濾波,突出、加強和改善圖像中不同灰度區域之間的邊界和輪廓的圖像增強方法。經處理使得邊界和邊緣在圖像上表現為圖像灰度的突變,用以提高人眼識別能力。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im= im02.filter(ImageFilter.EDGE_ENHANCE)
圖像im為邊緣增強后的圖像,如下圖:
5、 EDGE_ENHANCE_MORE
ImageFilter.EDGE_ENHANCE_MORE為深度邊緣增強濾波,會使得圖像中邊緣部分更加明顯。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im= im02.filter(ImageFilter.EDGE_ENHANCE_MORE)
圖像im為深度邊緣增強后的圖像,如下圖:
6、EMBOSS
ImageFilter.EMBOSS為浮雕濾波,會使圖像呈現出浮雕效果。
例子:
>>>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為尋找邊緣信息的濾波,會找出圖像中的邊緣信息。
例子:
>>>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為平滑濾波,突出圖像的寬大區域、低頻成分、主干部分或抑制圖像噪聲和干擾高頻成分,使圖像亮度平緩漸變,減小突變梯度,改善圖像質量。
例子:
>>>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為深度平滑濾波,會使得圖像變得更加平滑。
例子:
>>> from PIL importImageFilter >>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im =im02.filter(ImageFilter.SMOOTH_MORE)
圖像im為深度平滑濾波的圖像,如下圖:
10、SHARPEN
ImageFilter.SHARPEN為銳化濾波,補償圖像的輪廓,增強圖像的邊緣及灰度跳變的部分,使圖像變得清晰。
例子:
>>>from PIL import ImageFilter >>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im =im02.filter(ImageFilter.SHARPEN)
圖像im為銳化濾波的圖像,如下圖:
二、ImageFilter模塊的函數
1、 Kernel
定義:Kernel(size,kernel, scale=None, offset=0)
含義:(New in 1.1.5)生成一個給定尺寸的卷積核。在當前的版本中,變量size必須為(3,3)或者(5,5)。變量kernel與變量size對應地必須為包含9個或者25個整數或者浮點數的序列。
如果設置了變量scale,那將卷積核作用于每個像素值之后的數據,都需要除以這個變量。默認值為卷積核的權重之和。
如果設置變量offset,這個值將加到卷積核作用的結果上,然后再除以變量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為經過卷積核處理過的圖像,如下圖:
2、 RankFilter
定義:RankFilter(size,rank)
含義:(New in 1.1.5)生成給定尺寸的等級濾波器。對于輸入圖像的每個像素點,等級濾波器根據像素值,在(size,size)的區域中對所有像素點進行排序,然后拷貝對應等級的值存儲到輸出圖像中。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im=im02.filter(ImageFilter.RankFilter(5,24))
圖像im為等級濾波后的圖像,在每個像素點為中心的5x5區域25個像素點中選擇排序第24位的像素作為新的值。如下圖:
3、 MinFilter
定義:MinFilter(size=3)
含義:(New in 1.1.5)生成給定尺寸的最小濾波器。對于輸入圖像的每個像素點,該濾波器從(size,size)的區域中拷貝最小的像素值存儲到輸出圖像中。
例子:
>>> from PIL importImageFilter >>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im=im02.filter(ImageFilter.MinFilter(5))
圖像im為最小濾波后的圖像,在每個像素點為中心的5x5區域25個像素點中選擇最小的像素作為新的值。如下圖:
4、 MedianFilter
定義:MedianFilter(size=3)
含義:(New in 1.1.5)生成給定尺寸的中值濾波器。對于輸入圖像的每個像素點,該濾波器從(size,size)的區域中拷貝中值對應的像素值存儲到輸出圖像中。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im=im02.filter(ImageFilter.MedianFilter(5))
圖像im為中值濾波后的圖像,在每個像素點為中心的5x5區域25個像素點中選擇中值作為新的值。如下圖:
5、 MaxFilter
定義:MaxFilter(size=3)
含義:(New in 1.1.5)生成給定尺寸的最大濾波器。對于輸入圖像的每個像素點,該濾波器從(size,size)的區域中拷貝最大的像素值存儲到輸出圖像中。
例子:
>>>from PIL import ImageFilter >>> im02 =Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im=im02.filter(ImageFilter.MaxFilter(5))
圖像im為最大濾波后的圖像,在每個像素點為中心的5x5區域25個像素點中選擇最大的像素作為新的值。如下圖:
6、 ModeFilter
定義:ModeFilter(size=3)
含義:(New in 1.1.5)生成給定尺寸的模式濾波器。對于輸入圖像的每個像素點,該濾波器從(size,size)的區域中拷貝出現次數最多的像素值存儲到輸出圖像中。如果沒有一個像素值出現過兩次極其以上,則使用原始像素值。
例子:
>>>from PIL import ImageFilter >>>im02 = Image.open("D:\\Code\\Python\\test\\img\\test02.jpg") >>> im=im02.filter(ImageFilter.ModeFilter(5))
圖像im為模式濾波后的圖像,在每個像素點為中心的5x5區域25個像素點中選擇出現次數最多的像素作為新的值。如下圖:
以上就是Python圖像處理庫PIL的ImageFilter模塊使用介紹的詳細內容,更多關于PIL ImageFilter模塊的資料請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。