python PIL中ImageFilter模塊圖片濾波處理和使用方法
1 關(guān)于PIL庫(kù)
1.1 PIL簡(jiǎn)單介紹
PIL
是Python的一個(gè)圖像處理庫(kù),支持多種文件格式;PIL
提供強(qiáng)大的圖像處理和圖形處理能力;- 可完成對(duì)圖像的縮放、裁剪、疊加以及圖像添加線條、圖像和文字等操作。
- 安裝的話,使用以下命令:
pip install Pillow
1.2 常見PIL子庫(kù)或類
- 目錄在:
Python37\Lib\site-packages\PIL
- 以下是
PIL
的常見子庫(kù)或者常見的類及說明:
類或子庫(kù) | 說明 |
---|---|
Image | 最重要的模塊,如創(chuàng)建、打開、顯示、保存圖像等功能,合成、裁剪、濾波等功能,獲取圖像屬性功能,如圖像直方圖、通道數(shù)等 |
ImageChops | 算術(shù)圖形操作,如圖像特效,圖像組合,算法繪圖等 |
ImageCrackCode | 允許用戶檢測(cè)和測(cè)量圖像的各種特性 |
ImageDraw | 基本的圖形處理功能,如可創(chuàng)建新圖像,注釋或潤(rùn)飾已存在圖像,為web應(yīng)用實(shí)時(shí)產(chǎn)生各種圖形 |
ImageEnhance | 圖像增強(qiáng) |
ImageFile | 為圖像打開和保存功能提供了相關(guān)支持功能 |
ImageFileIO | 從一個(gè)socket 或者其他流設(shè)備中讀取一張圖像 |
ImageFilter | 各種濾波器的預(yù)定義集合 |
ImageFont | 字體庫(kù) |
ImageGrab | 將屏幕上的內(nèi)容拷貝到一個(gè)PIL 圖像內(nèi)存中 |
ImageOps | 可完成直方圖均衡、裁剪、量化、鏡像等操作 |
ImagePath | 存儲(chǔ)和操作二維向量數(shù)據(jù) |
ImageSequence | 為圖像序列中每一幀提供了迭代器 |
ImageStat | 計(jì)算一張圖像或者一張圖像的一個(gè)區(qū)域的全局統(tǒng)計(jì)值 |
ImageTk | 創(chuàng)建和修改BitmapImage 和PhotoImage 對(duì)象中的Tkinter |
PSDraw | 為Postscript 打印機(jī)提供基本的打印支持 |
2 ImageFilter模塊濾波處理
2.1 圖片輪廓
- 說明:將圖像中的輪廓信息全部提取出來;
- 方法:
ImageFilter.CONTOUR
; - 示例:
from PIL import Image, ImageFilter class TestImage(): def __init__(self): super(TestImage, self).__init__() self.img = Image.open("./image06.jpg") # self.img.show() # 圖片輪廓 def test_contur(self): self.contur = self.img.filter(ImageFilter.CONTOUR) # self.contur.show() self.contur.save("image06_contur.jpg") if __name__ == "__main__": image = TestImage() image.test_contur()
顯示效果:
2.2 浮雕效果
- 說明:使圖像呈現(xiàn)出浮雕效果;
- 方法:
ImageFilter.EMBOSS
; - 示例:
# 浮雕效果 def test_emboss(self): self.emboss = self.img.filter(ImageFilter.EMBOSS) # self.emboss.show() self.emboss.save("image07_emboss.jpg")
顯示效果:
2.3 邊緣增強(qiáng)
- 說明:會(huì)使得圖像中邊緣部分更加明顯;
- 方法:
ImageFilter.EDGE_ENHANCE_MORE
; - 示例:
def test_enhance_m(self): self.enhance = self.img.filter(ImageFilter.EDGE_ENHANCE_MORE) # self.enhance.show() self.enhance.save("image08_enhance.jpg")
顯示效果:
2.4 圖片模糊
- 說明:使得處理后的圖片變得模糊;
- 方法:
ImageFilter.BLUR
; - 示例:
def test_blur(self): self.blur = self.img.filter(ImageFilter.BLUR) # self.blur.show() self.blur.save("image09_blur.jpg")
顯示效果:
2.5 細(xì)節(jié)增強(qiáng)
- 說明:使圖像中細(xì)節(jié)更加明顯;
- 方法:
ImageFilter.DETAIL
; - 示例:
def test_detail(self): self.detail = self.img.filter(ImageFilter.DETAIL) self.detail.save("image10_detail.jpg")
顯示效果:
2.6 不同灰度邊緣增強(qiáng)
- 說明:加強(qiáng)和改善圖像中不同灰度區(qū)域之間的邊界和輪廓;
- 方法:
ImageFilter.EDGE_ENHANCE
; - 示例:
def test_enhance(self): self.enhance01 = self.img.filter(ImageFilter.EDGE_ENHANCE) self.enhance01.save("image11_enhance01.jpg")
顯示效果:
2.7 尋找邊緣信息
- 說明:找出圖像中的邊緣信息;
- 方法:
ImageFilter.FIND_EDGES
; - 示例:
def test_find_edges(self): self.find_edges = self.img.filter(ImageFilter.FIND_EDGES) self.find_edges.save("image12_find_edges.jpg")
顯示效果:
2.8 平滑處理
- 說明:使圖像亮度平緩漸變,減小突變梯度;
- 方法:
ImageFilter.SMOOTH
; - 示例:
def test_smooth(self): self.smooth = self.img.filter(ImageFilter.SMOOTH) self.smooth.save("image13_smooth.jpg")
顯示效果:
2.9 深度平滑處理
- 說明:使圖像更加平滑;
- 方法:
ImageFilter.SMOOTH_MORE
; - 示例:
def test_smooth_m(self): self.smooth_m = self.img.filter(ImageFilter.SMOOTH_MORE) self.smooth_m.save("image14_smooth_m.jpg")
顯示效果:
2.10 銳化處理
- 說明:補(bǔ)償圖像的輪廓;
- 方法:
ImageFilter.SHARPEN
; - 示例:
def test_sharpen(self): self.sharpen = self.img.filter(ImageFilter.SHARPEN) self.sharpen.save("image15_sharpen.jpg")
顯示效果:
3 完整源碼
# -*- coding:utf-8 -*- # 作者:蟲無涯 # 日期:2023/11/20 # 文件名稱:test_pil.py # 作用:圖片效果處理 # 聯(lián)系:VX(NoamaNelson) # 博客:https://blog.csdn.net/NoamaNelson from PIL import Image, ImageFilter class TestImage(): def __init__(self): super(TestImage, self).__init__() self.img = Image.open("./image06.jpg") # self.img.show() # 圖片輪廓 def test_contur(self): self.contur = self.img.filter(ImageFilter.CONTOUR) # self.contur.show() self.contur.save("image06_contur.jpg") # 浮雕效果 def test_emboss(self): self.emboss = self.img.filter(ImageFilter.EMBOSS) # self.emboss.show() self.emboss.save("image07_emboss.jpg") # 邊界增強(qiáng) def test_enhance_m(self): self.enhance = self.img.filter(ImageFilter.EDGE_ENHANCE_MORE) # self.enhance.show() self.enhance.save("image08_enhance.jpg") # 圖片模糊 def test_blur(self): self.blur = self.img.filter(ImageFilter.BLUR) # self.blur.show() self.blur.save("image09_blur.jpg") # 細(xì)節(jié)增強(qiáng) def test_detail(self): self.detail = self.img.filter(ImageFilter.DETAIL) self.detail.save("image10_detail.jpg") # 不同灰度邊緣增強(qiáng) def test_enhance(self): self.enhance01 = self.img.filter(ImageFilter.EDGE_ENHANCE) self.enhance01.save("image11_enhance01.jpg") # 找出圖像中的邊緣信息 def test_find_edges(self): self.find_edges = self.img.filter(ImageFilter.FIND_EDGES) self.find_edges.save("image12_find_edges.jpg") # 平滑處理 def test_smooth(self): self.smooth = self.img.filter(ImageFilter.SMOOTH) self.smooth.save("image13_smooth.jpg") # 深度平滑處理 def test_smooth_m(self): self.smooth_m = self.img.filter(ImageFilter.SMOOTH_MORE) self.smooth_m.save("image14_smooth_m.jpg") # 銳化處理 def test_sharpen(self): self.sharpen = self.img.filter(ImageFilter.SHARPEN) self.sharpen.save("image15_sharpen.jpg") if __name__ == "__main__": image = TestImage() # image.test_contur() # image.test_emboss() # image.test_enhance_m() # image.test_blur() # image.test_detail() # image.test_find_edges() # image.test_smooth() # image.test_smooth_m() image.test_sharpen()
以上就是python PIL中ImageFilter模塊圖片濾波處理和使用方法的詳細(xì)內(nèi)容,更多關(guān)于python PIL中ImageFilter模塊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python 3.5實(shí)現(xiàn)檢測(cè)路由器流量并寫入txt的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于利用python 3.5實(shí)現(xiàn)檢測(cè)路由器流量并寫入txt的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起看看吧。2017-12-12利用python、tensorflow、opencv、pyqt5實(shí)現(xiàn)人臉實(shí)時(shí)簽到系統(tǒng)
這篇文章主要介紹了利用python、tensorflow、opencv、pyqt5實(shí)現(xiàn)人臉實(shí)時(shí)簽到系統(tǒng),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09Python解析器Cpython的GIL解釋器鎖工作機(jī)制
這篇文章主要為大家介紹了Cpython的GIL解釋器鎖工作機(jī)制掌握示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07Python with用法:自動(dòng)關(guān)閉文件進(jìn)程
這篇文章主要介紹了Python with用法:自動(dòng)關(guān)閉文件進(jìn)程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07pycharm安裝教程(下載安裝以及設(shè)置中文界面)
這篇文章主要給大家介紹了關(guān)于pycharm安裝教程,文中包括下載安裝以及設(shè)置中文界面,PyCharm是一款Python IDE,其帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具,需要的朋友可以參考下2023-10-10python進(jìn)程管理工具supervisor使用實(shí)例
這篇文章主要介紹了python進(jìn)程管理工具supervisor使用實(shí)例,本文介紹了supervisor的安裝、配置、使用等內(nèi)容,需要的朋友可以參考下2014-09-09讓文件路徑提取變得更簡(jiǎn)單的Python Path庫(kù)
這里我們介紹 Python3 自帶的庫(kù) Path,可以讓我們使用更少的代碼但是與之而來的是更高的效率,文中有非常詳細(xì)的介紹及代碼示例 ,需要的朋友可以參考下2021-05-05