選單

吐血整理! Python 中的 10 個影象處理神器

本文主要介紹了一些簡單易懂最常用的 Python 影象處理庫。

當今世界充滿了各種資料,而影象是其中高的重要組成部分。然而,若想其有所應用,我們需要對這些影象進行處理。影象處理是分析和操縱數字影象的過程,旨在提高其質量或從中提取一些資訊,然後將其用於某些方面。

影象處理中的常見任務包括顯示影象,基本操作(如裁剪、翻轉、旋轉等),影象分割,分類和特徵提取,影象恢復和影象識別等。Python 之成為影象處理任務的最佳選擇,是因為這一科學程式語言日益普及,並且其自身免費提供許多最先進的影象處理工具。

讓我們看一下用於影象處理任務的一些常用 Python 庫。

#1。 scikit Image

scikit-image 是一個基於 numpy 陣列的開源 Python 包。它實現了用於研究、教育和工業應用的演算法和實用程式。即使是對於那些剛接觸 Python 的人,它也是一個相當簡單的庫。此庫程式碼質量非常高並已經過同行評審,是由一個活躍的志願者社群編寫的。

用法舉例:影象過濾、模版匹配

可使用“skimage”來匯入該庫。大多數功能都能在子模組中找到。

吐血整理! Python 中的 10 個影象處理神器

模版匹配(使用 match_template 函式)

吐血整理! Python 中的 10 個影象處理神器

#2。 Numpy

Numpy 是 Python 程式設計的核心庫之一,支援陣列結構。影象本質上是包含資料點畫素的標準 Numpy 陣列。因此,透過使用基本的 NumPy 操作——例如切片、脫敏和花式索引,可以修改影象的畫素值。可以使用 skimage 載入影象並使用 matplotlib 顯示。

用法舉例:使用 Numpy 來對影象進行脫敏處理

吐血整理! Python 中的 10 個影象處理神器

#3。 Scipy

scipy 是 Python 的另一個核心科學模組,就像 Numpy 一樣,可用於基本的影象處理和處理任務。值得一提的是,子模組 scipy。ndimage 提供了在 n 維 NumPy 陣列上執行的函式。該軟體包目前包括線性和非線性濾波、二進位制形態、B 樣條插值和物件測量等功能。

用法舉例:使用 SciPy 的高斯濾波器對影象進行模糊處理

吐血整理! Python 中的 10 個影象處理神器

#4。 PIL/ Pillow

PIL (Python Imaging Library) 是一個免費的 Python 程式語言庫,它增加了對開啟、處理和儲存許多不同影象檔案格式的支援。然而,它的發展停滯不前,其最後一次更新還是在 2009 年。幸運的是, PIL 有一個正處於積極開發階段的分支 Pillow,它非常易於安裝。Pillow 能在所有主要作業系統上執行並支援 Python 3。該庫包含基本的影象處理功能,包括點操作、使用一組內建卷積核心進行過濾以及顏色空間轉換。

用法舉例:使用 ImageFilter 增強 Pillow 中的影象

吐血整理! Python 中的 10 個影象處理神器

#5。 OpenCV-Python

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

用法舉例:使用 Pyramids 建立一個名為'Orapple'的新水果的功能

吐血整理! Python 中的 10 個影象處理神器

#6。SimpleCV

SimpleCV 也是用於構建計算機視覺應用程式的開源框架。透過它可以訪問如 OpenCV 等高效能的計算機視覺庫,而無需首先了解位深度、檔案格式或色彩空間等。學習難度遠遠小於 OpenCV,並且正如他們的標語所說,“ 它使計算機視覺變得簡單 ”。支援 SimpleCV 的一些觀點是:

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

攝像機、影片檔案、影象和影片流都可以互動操作

用法舉例

吐血整理! Python 中的 10 個影象處理神器

07

Mahotas

Mahotas 是另一個用於 Python 的計算機視覺和影象處理庫。它包含傳統的影象處理功能(如濾波和形態學操作)以及用於特徵計算的更現代的計算機視覺功能(包括興趣點檢測和區域性描述符)。該介面使用 Python,適用於快速開發,但演算法是用 C++ 實現的,並且針對速度進行了最佳化。Mahotas 庫執行很快,它的程式碼很簡單,(對其它庫的)依賴性也很小。建議閱讀他們的官方文件以瞭解更多內容。

用法舉例

Mahotas 庫使用簡單的程式碼來完成工作。對於“ 尋找 Wally ”的問題,Mahotas 完成的得很好,而且程式碼量非常小。

吐血整理! Python 中的 10 個影象處理神器

吐血整理! Python 中的 10 個影象處理神器

#8。 SimpleITK

ITK (Insight Segmentation and Registration Toolkit) 是一個開源的跨平臺系統,為開發人員提供了一整套用於影象分析的軟體工具。其中, SimpleITK 是一個建立在 ITK 之上的簡化層,旨在促進其在快速原型設計、教育以及指令碼語言中的使用。SimpleITK 是一個包含大量元件的影象分析工具包,支援一般的過濾操作、影象分割和配準。SimpleITK 本身是用 C++ 編寫的,但可用於包括 Python 在內的大量程式語言。

這裡有大量說明了如何使用 SimpleITK 進行教育和研究活動的 Jupyter notebook。notebook 中演示瞭如何使用 SimpleITK 進行使用 Python 和 R 程式語言的互動式影象分析。

用法舉例

下面的動畫是使用 SimpleITK 和 Python 建立的視覺化的嚴格 CT / MR 配準過程。

吐血整理! Python 中的 10 個影象處理神器

#9。 pgmagick

pgmagick 是 GraphicsMagick 庫基於 Python 的包裝器。GraphicsMagick 影象處理系統有時被稱為影象處理的瑞士軍刀。它提供了強大而高效的工具和庫集合,支援超過 88 種主要格式影象的讀取、寫入和操作,包括 DPX,GIF,JPEG,JPEG-2000,PNG,PDF,PNM 和 TIFF 等重要格式。

用法舉例:縮放、邊緣提取

吐血整理! Python 中的 10 個影象處理神器

縮放

吐血整理! Python 中的 10 個影象處理神器

邊緣提取

#10。 Pycairo

Pycairo 是圖形庫 cairo 的一組 python 繫結。Cairo 是一個用於繪製向量圖形的 2D 圖形庫。向量圖形很有趣,因為它們在調整大小或進行變換時不會降低清晰度。Pycairo 庫可以從 Python 呼叫 cairo 命令。

用法:Pycairo 可以繪製線條、基本形狀和徑向漸變

以上就是一些免費的優秀影象處理 Python 庫。有些很知名,你可能已經知道或者用過,有些可能對你來說還是新的。那正好現在就上手操作一下,試一試吧!