干貨整理!10個(gè)Python圖像處理工具,入門必看,提效大法

在圖像處理領(lǐng)域,一庫在手,相當(dāng)于天下已有。但是今天給大家推薦10個(gè)好用的庫,快來看看有哪些吧~
有一位搞數(shù)據(jù)科學(xué)的小姐姐Parul Pandey,整理了一份實(shí)用Python圖像處理工具,內(nèi)含十大經(jīng)典Python庫。

這份資源中的工具可用于圖像處理中的常見任務(wù),包括裁剪、翻轉(zhuǎn)、旋轉(zhuǎn)、圖像分割、分類和特征提取、圖像恢復(fù)和圖像識(shí)別等??芍^干貨滿滿,圖像處理提升效率必備。
1、scikit Image
scikit-image是一個(gè)與numpy數(shù)組配合使用的開源Python包,在學(xué)術(shù)研究、教育和行業(yè)領(lǐng)域都可應(yīng)用。
即使是那些剛接觸Python生態(tài)系統(tǒng)的人,也會(huì)覺得這是一個(gè)相當(dāng)簡(jiǎn)單直接的庫。
通過這個(gè)包能完成很多任務(wù),比如圖像過濾:
import matplotlib.pyplot as plt%matplotlib inlinefrom skimage import data,filtersimage=ata.coins()edges=filters.sobel(image)plt.imshow(edges,cmap= gray

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

官方地址:https://scikit-image.org/
用戶指南:https://scikit-image.org/docs/stable/user_guide.html
2、Numpy
Numpy是Python的核心庫之一,也能支持?jǐn)?shù)組,圖像本質(zhì)上是包含數(shù)據(jù)點(diǎn)像素的標(biāo)準(zhǔn)Numpy數(shù)組。
因此,通過基本的NumPy操作,可以修改圖像的像素值。
也可以使用skimage加載圖像并用matplotlib顯示。使用方法也和簡(jiǎn)單,比如需要mask一張圖像時(shí):
import numpy as npfrom skimage import dataimport matplotlib.pyplot as plt%matplotlib inlineimage=data.camera()type(image)numpy.ndarraymask=image<87image[mask]=255plt.imshow(image,cmap= gray )

官方地址:http://www.numpy.org/
3. Scipy
scipy是Python中另一個(gè)核心模塊,可用于基本的圖像操作和處理任務(wù)。
特別需要注意的是,子模塊scipy.ndimage提供在n維NumPy數(shù)組上運(yùn)行的功能。這個(gè)包目前包括線性和非線性濾波器、二元形態(tài)、B-spline插值和物體測(cè)量等功能。
可以用高斯過濾用Scipy模糊高斯濾波器:
from scipy import misc,ndimageface=misc.face()blu_face=ndimage.gaussian_filter(face,sigma=3)very_blu=ndimage.gaussian_filter(face,sigma=5)plt.imshow(<image to be displayed>)

官方資料:
https://docs.scipy.org/doc/scipy/reference/tutorial/ndimage.html#correlation-and-convolution
4、PIL/ Pillow
PIL(Python Imaging Library)是一個(gè)免費(fèi)的Python編程語言庫,它增加了對(duì)打開,操作和保存不同圖像文件格式的支持。
其分支Pillow更易于安裝,在所有主要操作系統(tǒng)上運(yùn)行并支持Python 3。這個(gè)庫包含基本的圖像處理功能,包括點(diǎn)操作、使用一組內(nèi)置卷積核濾波及顏色空間轉(zhuǎn)換。
當(dāng)用ImageFilter增強(qiáng)Pillow中的圖像時(shí),操作是這樣的:
from PIL import Image,ImageFilterim=Image.open( image.jpg )im.show()from PIL import ImageEnhanceenh=ImageEnhance.Contrast(im)enh.enhance(1.8).show("30% more contrast")
官方介紹:https://pillow.readthedocs.io/en/3.1.x/index.html
5、OpenCV-Python
OpenCV是計(jì)算機(jī)視覺應(yīng)用中使用最廣泛的庫之一,OpenCV-Python是OpenCV的python API。
總體來說,因?yàn)楹笈_(tái)由用C / C ++編寫,因此OpenCV-Python不僅速度快,也易于編程和部署。這使其成為執(zhí)行計(jì)算密集型視覺程序的絕佳選擇。
來看一下用例,下圖展示的是OpenCV-Python在Image Blending中使用Pyramids創(chuàng)建一個(gè)名為’Orapple’的新水果的功能。

上手指南:https://github.com/abidrahmank/OpenCV2-Python-Tutorials
6、SimpleCV
SimpleCV也是廣泛被使用的構(gòu)建計(jì)算機(jī)視覺應(yīng)用程序的開源框架。
手握SimpleCV,你可以訪問幾個(gè)高性能的視覺庫,而無需先了解圖像色深(bit depth)、文件格式、色彩空間等。
SimpleCV擁護(hù)者的支持理由有兩個(gè),一是初學(xué)者也可以借此編寫簡(jiǎn)單的視覺任務(wù),二是無論是相機(jī)、視頻文件、圖像和視頻流可互相操作。

用戶指南:https://simplecv.readthedocs.io/en/latest/
7、Mahotas
Mahotas包含傳統(tǒng)的圖像處理功能,如濾波和圖像形態(tài)學(xué)處理,以及用于特征計(jì)算,比如興趣點(diǎn)檢測(cè)和局部描述子等。
這個(gè)庫適用于快速開發(fā),算法是用C++實(shí)現(xiàn)的,并且針對(duì)速度進(jìn)行了調(diào)整。

官方地址:https://mahotas.readthedocs.io/en/latest/
用戶指南:https://mahotas.readthedocs.io/en/latest/index.html
8、 SimpleITK
ITK是一個(gè)開源的跨平臺(tái)系統(tǒng),提供一整套用于圖像分析的軟件工具。
其中,SimpleITK是一個(gè)建立在ITK之上的簡(jiǎn)化層,促進(jìn)其在簡(jiǎn)化原型、教育和解釋語言中的應(yīng)用。
SimpleITK是一個(gè)圖像分析工具包,內(nèi)含大量組件,支持一般濾波操作、圖像分割和圖形配準(zhǔn)。
SimpleITK本身是用C++編寫的,但也適用于包括Python在內(nèi)的大量編程語言。
下面就是用SimpleITK和Python創(chuàng)建的可視化的CT/MR圖:

官方地址:https://itk.org/
學(xué)習(xí)資料:http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/
9、GraphicsMagick
GraphicsMagick號(hào)稱圖像處理領(lǐng)域的瑞士軍刀。代碼短小卻提供了一個(gè)魯棒、高效的工具和庫集合,可用來處理圖像的讀取、寫入和操作。
支持超過88種圖像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF。
將它用于圖像邊緣提取任務(wù),效果如下:

官方資料:https://pypi.org/project/pgmagick/
相關(guān)資源:https://github.com/hhatto/pgmagick
10、Pycairo
pyCairo是一個(gè)Python的2D圖形渲染庫,可用于繪制矢量圖形的2D圖形,在調(diào)整大小或變換時(shí)不會(huì)丟失清晰度。
下面這個(gè)用例是用Pycairo繪制線條、基本形狀和徑向梯度。

官方介紹:https://cairographics.org/
相關(guān)資源:https://github.com/pygobject/pycairo
原文:
https://towardsdatascience.com/image-manipulation-tools-for-python-6eb0908ed61f
推薦閱讀 誤執(zhí)行了rm -fr /*之后,除了跑路還能怎么辦?! 程序員必備58個(gè)網(wǎng)站匯總 大幅提高生產(chǎn)力:你需要了解的十大Jupyter Lab插件
