收藏!10 個 Python 圖像處理工具
這些 Python 庫提供了一種簡單直觀的方法來轉(zhuǎn)換圖像并理解底層數(shù)據(jù)。
今天的世界充滿了數(shù)據(jù),圖像是這些數(shù)據(jù)的重要組成部分。但是,在使用它們之前,必須對這些數(shù)字圖像進(jìn)行處理 - 分析和操作,以提高其質(zhì)量或提取一些可以使用的信息。
常見的圖像處理任務(wù)包括顯示;基本操作如裁剪,翻轉(zhuǎn),旋轉(zhuǎn)等;;圖像分割,分類和特征提取;圖像恢復(fù);圖像識別。Python 是這些圖像處理任務(wù)的絕佳選擇,因?yàn)樗鳛橐环N科學(xué)編程語言日益普及,并且在其生態(tài)系統(tǒng)中免費(fèi)提供許多最先進(jìn)的圖像處理工具。
本文著眼于 10 個最常用的 Python 庫,用于圖像處理任務(wù)。這些庫提供了一種簡單直觀的方法來轉(zhuǎn)換圖像并理解底層數(shù)據(jù)。
1. scikit-image
scikit-image 是一個與 NumPy 數(shù)組一起使用的開源 Python 包。它實(shí)現(xiàn)了用于研究,教育和行業(yè)應(yīng)用的算法和實(shí)用程序。它是一個相當(dāng)簡單直接的庫,即使對那些不熟悉 Python 生態(tài)系統(tǒng)的人也是如此。代碼質(zhì)量高,經(jīng)過同行評審,由一個活躍的志愿者社區(qū)編寫。
資源
scikit-image 文檔豐富,有很多示例和實(shí)際使用方法。
用法
該包通過?skimage?導(dǎo)入,大多數(shù)功能可以在子模塊中找到。
圖像過濾:


使用 match_template 函數(shù)進(jìn)行模板匹配:

你可以在 gallery 中找到更多的例子。
2. NumPy
NumPy 是 Python 編程中的核心庫之一,并為數(shù)組提供支持。圖像本質(zhì)上是包含數(shù)據(jù)點(diǎn)像素的標(biāo)準(zhǔn) NumPy 數(shù)組。因此,通過使用基本的 NumPy 操作(如 slicing,masking 和 fancy indexing),您可以修改圖像的像素值。可以使用 skimage?加載圖像并使用? Matplotlib 顯示。
資源
NumPy 的官方文檔頁面提供了完整的資源和文檔列表。
用法
使用 Numpy 來 mask:


3. SciPy
SciPy 是 Python 的另一個核心科學(xué)模塊(如 NumPy),可用于基本的圖像操作和處理任務(wù)。特別是,子模塊 scipy.ndimage(在 SciPy v1.1.0 中)提供了在 n 維 NumPy 數(shù)組上運(yùn)行的函數(shù)。該軟件包目前包括線性和非線性濾波,二進(jìn)制形態(tài),B 樣條插值和對象測量等功能。
資源
有關(guān) scipy.ndimage 包所提供的完整功能列表,請參閱文檔。
用法
使用 SciPy 通過高斯濾波器進(jìn)行模糊


4. PIL/Pillow
PIL(Python Imaging Library)是一個免費(fèi)的 Python 編程語言庫,它增加了對打開,操作和保存許多不同圖像格式的支持。然而,它的發(fā)展停滯不前,其最后一版發(fā)布于 2009 年。幸運(yùn)的是,Pillow 是一個積極開發(fā)的PIL分支,它更易于安裝,可在所有主流操作系統(tǒng)上運(yùn)行,并支持 Python 3。該庫包含基本圖像處理功能,包括點(diǎn)操作,使用一組內(nèi)置卷積內(nèi)核進(jìn)行過濾以及顏色空間轉(zhuǎn)換。
資源
文檔包含安裝說明以及涵蓋庫的每個模塊的示例。
用法
使用 ImageFilter 增強(qiáng) Pillow 中的圖像:

5. OpenCV-Python
OpenCV(Open Source Computer Vision Library)是計(jì)算機(jī)視覺應(yīng)用中使用最廣泛的庫之一。OpenCV-Python 是 OpenCV 的 Python API。因?yàn)楹笈_由 C / C ++ 編寫的代碼組成,OpenCV-Python 速度很快快,但它也很容易編碼和部署(由于前端的 Python 包裝器)。這使其成為執(zhí)行計(jì)算密集型計(jì)算機(jī)視覺程序的絕佳選擇。
資源
通過 OpenCV2-Python-Guide 可以很容易上手 OpenCV-Python
用法
使用 OpenCV-Python 中的 Image Blending using Pyramids 創(chuàng)建一個 “Orapple”:

6. SimpleCV
SimpleCV 是另一個用于構(gòu)建計(jì)算機(jī)視覺應(yīng)用程序的開源框架。它提供訪問幾個高性能計(jì)算機(jī)視覺庫,如 OpenCV,的接口,但無需了解位深度,文件格式,色彩空間等。它的學(xué)習(xí)曲線遠(yuǎn)小于 OpenCV,并且(如其標(biāo)語所示),“它令計(jì)算機(jī)視覺變得簡單。”支持 SimpleCV 的一些觀點(diǎn)是:
即使是初學(xué)者也可以編寫簡單的機(jī)器視覺測試
攝像機(jī),視頻文件,圖像和視頻流都可以互操作
資源
很容易按照官方文檔的指導(dǎo)進(jìn)行操作,并有大量的示例和用例可供遵循。
用法

7. Mahotas
Mahotas 是另一個用于 Python 的計(jì)算機(jī)視覺和圖像處理庫。它包含傳統(tǒng)的圖像處理功能,如過濾和形態(tài)操作,以及用于特征計(jì)算的更現(xiàn)代的計(jì)算機(jī)視覺功能,包括興趣點(diǎn)檢測和局部描述符。使用 Python 編寫接口,適用于快速開發(fā),但算法是用 C ++ 實(shí)現(xiàn)的,并且針對速度進(jìn)行了優(yōu)化。Mahotas 庫運(yùn)行快速,代碼簡約,依賴性小。閱讀其官方文章以獲得更多了解。
資源
文檔包含安裝說明,示例,甚至一些教程幫助您輕松開始使用 Mahotas。
用法
Mahotas 庫依靠簡單的代碼來完成工作。例如,使用最少量的代碼 Finding Wally 問題就可以很好地解決。
解決 Finding Wally 問題:


8. SimpleITK
ITK(Insight Segmentation and Registration Toolkit)是一個“開源,跨平臺系統(tǒng),為開發(fā)人員提供了一套用于圖像分析的廣泛軟件工具。SimpleITK 是一個基于 ITK 構(gòu)建的簡化層,旨在促進(jìn)其在快速原型設(shè)計(jì),交易以及解釋語言方面的應(yīng)用。”它也是一個圖像分析工具包,具有大量組件,支持一般過濾操作,圖像分割和配準(zhǔn)。SimpleITK 是用 C ++ 編寫的,但它可用包括 Python 在內(nèi)的大量編程語言進(jìn)行操作。
資源
有大量的 Jupyter Notebook 說明了 SimpleITK 在教育和研究活動中的應(yīng)用。Notebooks 使用 Python 和 R 編程語言演示如何使用 SimpleITK 進(jìn)行交互式圖像分析。
用法
使用 SimpleITK 和 Python 創(chuàng)建可視化的嚴(yán)格 CT / MR 配準(zhǔn)過程:

9. pgmagick
pgmagick 是基于 Python 的 GraphicsMagick 庫的包裝器。GraphicsMagick 圖像處理系統(tǒng),有時也被稱為圖像處理的瑞士軍刀。其強(qiáng)大而高效的工具和庫集合支持在超過 88 種主要格式(包括 DPX,GIF,JPEG,JPEG-2000,PNG,PDF,PNM 和 TIFF)上讀取,寫入和操作圖像。
資源
pgmagick 的 GitHub respository 有安裝說明和要求。還有一個詳細(xì)的用戶指南。
用法
圖像縮放:

邊緣提取:

10. Pycairo
Pycairo 是 Cairo 圖形庫的一組 Python 綁定。Cairo 是一個用于繪制矢量圖形的 2D 圖形庫。矢量圖形很有趣,因?yàn)樗鼈冊谡{(diào)整大小或變換時不會失去清晰度。Pycairo 可以從 Python 調(diào)用 Cairo 命令。
資源
Pycairo GitHub respository 是一個很好的資源,包含有關(guān)安裝和使用的詳細(xì)說明。還有一個入門指南,有一個關(guān)于 Pycairo 的簡短教程。
用法
用 Pycairo 繪制線條,基本形狀和徑向漸變:

結(jié)論
這些是 Python 中一些有用且免費(fèi)提供的圖像處理庫。有些是眾所周知的,有些可能對你來說是新的。嘗試一下它們以了解更多關(guān)于它們的信息!

End
歡迎大家加入【ChatGPT&AI 變現(xiàn)圈】,零門檻掌握 AI 神器!我們帶你從小白到高手,解鎖智能問答、自動化創(chuàng)作、技術(shù)變現(xiàn)的無限可能。與我們共同成長,開啟 AI 新征程!立即行動,未來已來!(詳情請戳:知識星球:ChatGPT&AI 變現(xiàn)圈,正式上線!)
掃碼加入:

點(diǎn)個在看你最好看
