十個Python圖像處理工具

十個Python圖像處理工具

這些Python庫提供了一種簡單直觀的方法來轉換圖像並理解底層數據。

今天的世界充滿了數據,圖像是這些數據的重要組成部分。但是,在使用它們之前,必須對這些數字圖像進行處理 - 分析和操作,以提高其質量或提取一些可以使用的信息。

常見的圖像處理任務包括顯示; 基本操作如裁剪,翻轉,旋轉等;;圖像分割,分類和特徵提取;圖像恢復;圖像識別。Python是這些圖像處理任務的絕佳選擇,因為它作為一種科學編程語言日益普及,並且在其生態系統中免費提供許多最先進的圖像處理工具。

本文著眼於10個最常用的Python庫,用於圖像處理任務。這些庫提供了一種簡單直觀的方法來轉換圖像並理解底層數據。

1. scikit-image

scikit-image是一個與NumPy數組一起使用的開源Python包。它實現了用於研究,教育和行業應用的算法和實用程序。它是一個相當簡單直接的庫,即使對那些不熟悉Python生態系統的人也是如此。代碼質量高,經過同行評審,由一個活躍的志願者社區編寫。

資源

scikit-image文檔豐富,有很多示例和實際使用方法。

用法

該包通過skimage導入,大多數功能可以在子模塊中找到。

圖像過濾:

十個Python圖像處理工具十個Python圖像處理工具

使用match_template函數進行模板匹配:

十個Python圖像處理工具

你可以在gallery中找到更多的例子。

2. NumPy

NumPy是Python編程中的核心庫之一,併為數組提供支持。圖像本質上是包含數據點像素的標準NumPy數組。因此,通過使用基本的NumPy操作(如slicing,masking和fancy indexing),您可以修改圖像的像素值。可以使用 skimage加載圖像並使用 Matplotlib顯示。

資源

NumPy的官方文檔頁面提供了完整的資源和文檔列表。

用法

使用Numpy來mask圖片:

十個Python圖像處理工具十個Python圖像處理工具

3. SciPy

SciPy是Python的另一個核心科學模塊(如NumPy),可用於基本的圖像操作和處理任務。特別是,子模塊 scipy.ndimage(在SciPy v1.1.0中)提供了在n維NumPy數組上運行的函數。該軟件包目前包括線性和非線性濾波,二進制形態,B樣條插值和對象測量等功能。

資源

有關scipy.ndimage包所提供的完整功能列表,請參閱文檔。

用法

使用SciPy通過高斯濾波器進行模糊

十個Python圖像處理工具十個Python圖像處理工具

4. PIL/Pillow

PIL(Python Imaging Library)是一個免費的Python編程語言庫,它增加了對打開,操作和保存許多不同圖像格式的支持。然而,它的發展停滯不前,其最後一版發佈於2009年。幸運的是,Pillow是一個積極開發的PIL分支,它更易於安裝,可在所有主流操作系統上運行,並支持Python 3。該庫包含基本圖像處理功能,包括點操作,使用一組內置卷積內核進行過濾以及顏色空間轉換。

資源

文檔包含安裝說明以及涵蓋庫的每個模塊的示例。

用法

使用ImageFilter增強Pillow中的圖像:

十個Python圖像處理工具

5. OpenCV-Python

OpenCV(Open Source Computer Vision Library)是計算機視覺應用中使用最廣泛的庫之一。OpenCV-Python是OpenCV的Python API。因為後臺由C / C ++編寫的代碼組成,OpenCV-Python速度很快快,但它也很容易編碼和部署(由於前端的Python包裝器)。這使其成為執行計算密集型計算機視覺程序的絕佳選擇。

資源

通過OpenCV2-Python-Guide可以很容易上手OpenCV-Python

用法

使用OpenCV-Python中的 Image Blending using Pyramids創建一個“Orapple”:

十個Python圖像處理工具

6. SimpleCV

SimpleCV是另一個用於構建計算機視覺應用程序的開源框架。它提供訪問幾個高性能計算機視覺庫,如OpenCV,的接口,但無需瞭解位深度,文件格式,色彩空間等。它的學習曲線遠小於OpenCV,並且(如其標語所示),“它令計算機視覺變得簡單。”支持SimpleCV的一些觀點是:

  • 即使是初學者也可以編寫簡單的機器視覺測試

  • 攝像機,視頻文件,圖像和視頻流都可以互操作

資源

很容易按照官方文檔的指導進行操作,並有大量的示例和用例可供遵循。

用法

十個Python圖像處理工具

7. Mahotas

Mahotas是另一個用於Python的計算機視覺和圖像處理庫。它包含傳統的圖像處理功能,如過濾和形態操作,以及用於特徵計算的更現代的計算機視覺功能,包括興趣點檢測和局部描述符。使用Python編寫接口,適用於快速開發,但算法是用C ++實現的,並且針對速度進行了優化。Mahotas庫運行快速,代碼簡約,依賴性小。閱讀其官方文章以獲得更多瞭解。

資源

文檔包含安裝說明,示例,甚至一些教程幫助您輕鬆開始使用Mahotas。

用法

Mahotas庫依靠簡單的代碼來完成工作。例如,使用最少量的代碼Finding Wally問題就可以很好地解決。

解決Finding Wally問題:

十個Python圖像處理工具十個Python圖像處理工具

8. SimpleITK

ITK(Insight Segmentation and Registration Toolkit)是一個“開源,跨平臺系統,為開發人員提供了一套用於圖像分析的廣泛軟件工具。SimpleITK是一個基於ITK構建的簡化層,旨在促進其在快速原型設計,交易以及解釋語言方面的應用。”它也是一個圖像分析工具包,具有大量組件,支持一般過濾操作,圖像分割和配準。SimpleITK是用C ++編寫的,但它可用包括Python在內的大量編程語言進行操作。

資源

有大量的Jupyter Notebook說明了SimpleITK在教育和研究活動中的應用。Notebooks使用Python和R編程語言演示如何使用SimpleITK進行交互式圖像分析。

用法

使用SimpleITK和Python創建可視化的嚴格CT / MR配準過程:

十個Python圖像處理工具

9. pgmagick

pgmagick是基於Python的GraphicsMagick庫的包裝器。GraphicsMagick圖像處理系統,有時也被稱為圖像處理的瑞士軍刀。其強大而高效的工具和庫集合支持在超過88種主要格式(包括DPX,GIF,JPEG,JPEG-2000,PNG,PDF,PNM和TIFF)上讀取,寫入和操作圖像。

資源

pgmagick的GitHub respository有安裝說明和要求。還有一個詳細的用戶指南。

用法

圖像縮放:

十個Python圖像處理工具

邊緣提取:

十個Python圖像處理工具

10. Pycairo

Pycairo是Cairo圖形庫的一組Python綁定。Cairo是一個用於繪製矢量圖形的2D圖形庫。矢量圖形很有趣,因為它們在調整大小或變換時不會失去清晰度。Pycairo可以從Python調用Cairo命令。

資源

Pycairo GitHub respository是一個很好的資源,包含有關安裝和使用的詳細說明。還有一個入門指南,有一個關於Pycairo的簡短教程。

用法

用Pycairo繪製線條,基本形狀和徑向漸變:

十個Python圖像處理工具

結論

這些是Python中一些有用且免費提供的圖像處理庫。有些是眾所周知的,有些可能對你來說是新的。嘗試一下它們以瞭解更多關於它們的信息!

英文原文:https://opensource.com/article/19/3/python-image-manipulation-tools
譯者:搞一個大新聞

相關推薦

推薦中...