十個Python圖像處理工具

2021-02-25 學神IT教育

學神IT教育:XueGod-IT

最負責任的線上直播教育平臺

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

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

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

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

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

資源

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

用法

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

圖像過濾:

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

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

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

資源

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

用法

使用Numpy來mask圖片:

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

資源

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

用法

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

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

資源

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

用法

使用ImageFilter增強Pillow中的圖像:

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」:

6. SimpleCV

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

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

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

資源

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

用法

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

資源

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

用法

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

解決Finding Wally問題:

8. SimpleITK


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

資源

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

用法

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

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

資源

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

用法

圖像縮放:

邊緣提取:

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

資源

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

用法

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

結論

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

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

免費Python直播課程點【閱讀原文】:

相關焦點

  • 10個Python圖像處理工具,非常全了!
    點擊上方「AI公園」,關注公眾號,選擇加「星標「或「置頂」作者:Parul Pandey編譯:ronghuaiyang10個常用的可以進行圖像處理的
  • 常用的十大 python 圖像處理工具
    但無論是用於何種用途,這些圖像都需要進行處理。圖像處理就是分析和處理數字圖像的過程,主要旨在提高其質量或從中提取一些信息,然後可以將其用於某種用途。圖像處理中的常見任務包括顯示圖像,基本操作如裁剪、翻轉、旋轉等,圖像分割,分類和特徵提取,圖像恢復和圖像識別。
  • 10個不得不知的Python圖像處理工具,非常全了!
    10個常用的可以進行圖像處理的Python庫的介紹,可能有些你還沒用過,可以試試看!介紹我們這個世界充滿了數據,而圖像是這些數據的重要組成部分。然而,要想使用這些圖像,需要對它們進行處理。因此,圖像處理是分析和處理數字圖像的必要的過程,其主要目的是提高圖像質量或從中提取一些信息,然後加以利用。圖像處理中常見的任務包括圖像顯示、裁剪、翻轉、旋轉等基本操作、圖像分割、分類和特徵提取、圖像恢復和圖像識別。
  • Python中的十大圖像處理工具
    大數據文摘出品編譯:張秋玥、小七、蔣寶尚本文主要介紹了一些簡單易懂最常用的Python圖像處理庫當今世界充滿了各種數據,而圖像是其中高的重要組成部分。然而,若想其有所應用,我們需要對這些圖像進行處理。圖像處理是分析和操縱數字圖像的過程,旨在提高其質量或從中提取一些信息,然後將其用於某些方面。圖像處理中的常見任務包括顯示圖像,基本操作(如裁剪、翻轉、旋轉等),圖像分割,分類和特徵提取,圖像恢復和圖像識別等。 Python之成為圖像處理任務的最佳選擇,是因為這一科學程式語言日益普及,並且其自身免費提供許多最先進的圖像處理工具。
  • 使用Python圖像處理庫Pillow處理圖像文件
    本案例使用圖像處理庫Pillow中的模塊、對象來處理圖像:實現讀取圖像、獲取圖像信息、調整圖像大小、旋轉圖像、平滑圖像、剪切圖像等基本圖像處理任務。CS2.1 安裝PillowPillow是Python中的圖像處理庫(PIL:Python Image Library),提供了了廣泛的文件格式支持,強大的圖像處理能力,主要包括圖像儲存、圖像顯示、格式轉換以及基本的圖像處理操作等。
  • Python十大工具,讓圖像簡潔直觀有魅力!
    因此,圖像處理就是對數字圖像進行分析、操作的過程,其主要目的是為改善圖像質量或從中提取一些有用信息。圖像處理的常見任務包括圖像顯示、圖像基本操作(裁剪、翻轉、旋轉等)、圖像分割、分類及特徵提取、圖像修復和圖像識別。而Python作為一種科學程式語言已在日漸普及,在生態系統庫中還免費提供了許多最為先進的圖像處理工具,因此成為了圖像處理的最佳選擇。
  • Python+OpenCV的基礎圖像處理操作匯總
    圖像處理是對圖像進行的技術操作與分析,比如為了得到增強的圖像或提取一些有用的信息而進行的一系列操作。隨著我們的發展,許多應用程式使用圖像/幀/視頻作為輸入,對它們進行預處理,並將其輸入到設備或軟體或腳本中。圖像處理也可以是娛樂性的,可以用於許多應用。
  • Python 圖像處理 OpenCV (1):入門
    引言又開一個新的系列分享,對圖像處理感興趣的同學可以關注這個系列。更新頻率儘量保持一周兩到三次推送。
  • python圖像處理-添加文字
    python圖像處理-1python圖像處理-批量生成純色圖片歡迎關注:葉子陪你玩編程分享自己的python學習之路
  • ImagePy——UI界面支持開放插件的Python開源圖像處理框架
    雷鋒網 AI 科技評論按,ImagePy 是一款 python 開源圖像處理框架,其 UI 界面支持開放插件。在 github:https://github.com/Image-Py/imagepy 上,不僅有關於這款圖像處理軟體的詳細介紹,還有一些使用示例,雷鋒網 AI 科技評論接下來將詳細介紹這一開源圖像處理框架。
  • [Python圖像處理] 一.圖像處理基礎知識及OpenCV入門函數
    2.灰度圖像灰度圖像除了黑和白,還有灰色,它把灰度劃分為256個不同的顏色,圖像看著也更為清晰。二.OpenCV讀寫圖像OpenCV(Open Source Computer Vision)直譯為「開源計算機視覺庫」,它是一個開放原始碼的圖像及視頻分析庫,是進行圖像處理的一款必備工具。
  • Python PIL圖像處理開發極簡教程
    問題或建議,請公眾號留言;如果你覺得文章對你有幫助,歡迎轉發支持PIL安裝與介紹PIL是python image libaray縮寫,是python語言的圖像處理庫,很多時候對於一些簡單的圖像處理,我們經常使用的是其中一個fork項目pillow,它的github地址如下:https:
  • 驗證碼識別實例,python簡單圖像處理和實現
    4、圖像有許多雜散的黑暗像素,以及穿過圖像的線條作為幹擾因素。圖像分析所以我最終下載了一個這樣的圖像,並使用一個工具(binary-image)以二進位形式可視化圖像(0表示黑色,1表示白色像素)。我的觀察沒錯,圖像尺寸為45x180,每個字符分配30個像素的空間來適配,從而使它們間隔比較均勻。因此,取得了驗證碼識別路上的第一步,結果:把圖像裁剪成6個不同的部分,每個部分的寬度為30像素。
  • 醫學圖像處理與深度學習入門
    然而這些研究領域仍然停留在普通圖像上,然而我們的目標是將這些研究應用於醫學圖像,進而輔助醫療診斷。在進入主題之前,我們將從圖像處理的基礎開始,介紹基本的醫學圖像格式數據,並且將這些數據可視化。在下一篇文章中,我們將深入CNN方法,並且利用Keras(Keras Documentation),對肺癌進行預測。
  • 【數字圖像處理系列五】圖像濾波之空間濾波:圖像平滑降噪和圖像銳化
    jupyter notebook,是一個python的交互式開發環境,測試十分方便,併集成了vim操作,安裝教程可參考:https://blog.csdn.net/feilong_csdn/article/details/80186276先導文章:opencv-python快速入門篇【數字圖像處理系列一】
  • 韋編 | NLTK——面向英文的python自然語言處理工具
    跟大家說個開心的事!!!又快到期末了!!!各種課程論文!!!上周給大家介紹了一款面向中文的自然語言處理工具HanLP,今天給大家介紹另一款面向英文的經典的python自然語言處理工具——NLTK。NLTK全稱「Natural Language Toolkit」,知名的python自然語言處理工具,誕生於賓夕法尼亞大學,以研究和教學為目的而生,因此特別適合入門學習。它提供了易於使用的接口,通過這些接口可以訪問的語料庫和詞彙資源超過50個,還有一套用於分類、標記化、詞幹標記、解析和語義推理的文本處理庫,使用起來高效方便。
  • 使用Python+OpenCV進行圖像處理之入門教程
    圖像處理有很多種應用,包括用於解析文檔和生成相應文本的光學字符識別(OCR)、圖像增強與重建、物體識別、人體運動識別、手勢識別、人臉識別等。在學習的過程中,你會遇到過奇形怪狀的各種圖像濾波器,那有沒有去思考如何實現它嗎,在本文中,我們將通過實現一個簡單的濾波器來開始我們的圖像處理之旅!什麼是OpenCVOpenCV是一個開源庫,包含了許多計算機視覺算法。
  • Python-OpenCV獲取圖像輪廓的圖像處理方法
    一、引言在《OpenCV閾值處理函數threshold處理32位彩色圖像的案例》介紹了threshold 函數,但threshold 的圖像閾值處理對於某些光照不均的圖像
  • opencv-python圖像預處理-濾波
    為了消除外界環境對圖像採集的幹擾,增強圖像的邊緣及灰度跳變的部分,使圖像變得清晰以及提高圖像處理速度需要對圖像進行預處理操作,主要是對圖像進行濾波和增強操作。使用的方法可以分為空間域處理和頻率域處理兩類。空間域指圖像平面本身,這類圖像處理方法用各種模板直接與圖像進行卷積運算,實現對圖像的處理。
  • Python的可視化工具概述
    Matplotlib 是python可視化庫的祖父.它非常強大,但是太過複雜.你可以使用Matplotlib 做任何你需要做到的事情,但是並不容易弄明白.我不打算通過純Matplotlib 樣例講解,因為許多工具(尤其Pandas和Seaborn)是Matplotlib的thin wrappers.