在影像處理領域,一庫在手,相當于天下已有,但是今天給大家推薦10個好用的庫,快來看看有哪些吧~
有一位搞資料科學的小姐姐Parul Pandey,整理了一份實用Python影像處理工具,內含十大經典Python庫,
這份資源中的工具可用于影像處理中的常見任務,包括裁剪、翻轉、旋轉、影像分割、分類和特征提取、影像恢復和影像識別等,可謂干貨滿滿,影像處理提升效率必備,
1、scikit Image
scikit-image是一個與numpy陣列配合使用的開源Python包,在學術研究、教育和行業領域都可應用,
即使是那些剛接觸Python生態系統的人,也會覺得這是一個相當簡單直接的庫,
通過這個包能完成很多任務,比如影像過濾:
import matplotlib.pyplot as plt
%matplotlib inline
from skimage import data,filters
image=ata.coins()
edges=filters.sobel(image)
plt.imshow(edges,cmap='gray'
使用match_template 函式進行模板匹配:
官方地址:https://scikit-image.org/
用戶指南:https://scikit-image.org/docs/stable/user_guide.html
2、Numpy
Numpy是Python的核心庫之一,也能支持陣列,影像本質上是包含資料點像素的標準Numpy陣列,
因此,通過基本的NumPy操作,可以修改影像的像素值,
也可以使用skimage加載影像并用matplotlib顯示,使用方法也和簡單,比如需要mask一張影像時:
import numpy as np
from skimage import data
import matplotlib.pyplot as plt
%matplotlib inline
image=data.camera()
type(image)
numpy.ndarray
mask=image<87
image[mask]=255
plt.imshow(image,cmap='gray')
官方地址:http://www.numpy.org/
3. Scipy
scipy是Python中另一個核心模塊,可用于基本的影像操作和處理任務,
特別需要注意的是,子模塊scipy.ndimage提供在n維NumPy陣列上運行的功能,這個包目前包括線性和非線性濾波器、二元形態、B-spline插值和物體測量等功能,
可以用高斯過濾用Scipy模糊高斯濾波器:
from scipy import misc,ndimage
face=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)是一個免費的Python編程語言庫,它增加了對打開,操作和保存不同影像檔案格式的支持,
其分支Pillow更易于安裝,在所有主要作業系統上運行并支持Python 3,這個庫包含基本的影像處理功能,包括點操作、使用一組內置卷積核濾波及顏色空間轉換,
當用ImageFilter增強Pillow中的影像時,操作是這樣的:
from PIL import Image,ImageFilter
im=Image.open('image.jpg')
im.show()
from PIL import ImageEnhance
enh=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是計算機視覺應用中使用最廣泛的庫之一,OpenCV-Python是OpenCV的python API,
總體來說,因為后臺由用C / C ++撰寫,因此OpenCV-Python不僅速度快,也易于編程和部署,這使其成為執行計算密集型視覺程式的絕佳選擇,
來看一下用例,下圖展示的是OpenCV-Python在Image Blending中使用Pyramids創建一個名為’Orapple’的新水果的功能,
上手指南:https://github.com/abidrahmank/OpenCV2-Python-Tutorials
6、SimpleCV
SimpleCV也是廣泛被使用的構建計算機視覺應用程式的開源框架,
手握SimpleCV,你可以訪問幾個高性能的視覺庫,而無需先了解影像色深(bit depth)、檔案格式、色彩空間等,
SimpleCV擁護者的支持理由有兩個,一是初學者也可以借此撰寫簡單的視覺任務,二是無論是相機、視頻檔案、影像和視頻流可互相操作,
用戶指南:https://simplecv.readthedocs.io/en/latest/
7、Mahotas
Mahotas包含傳統的影像處理功能,如濾波和影像形態學處理,以及用于特征計算,比如興趣點檢測和區域描述子等,
這個庫適用于快速開發,演算法是用C++實作的,并且針對速度進行了調整,
官方地址:https://mahotas.readthedocs.io/en/latest/
用戶指南:https://mahotas.readthedocs.io/en/latest/index.html
8、 SimpleITK
ITK是一個開源的跨平臺系統,提供一整套用于影像分析的軟體工具,
其中,SimpleITK是一個建立在ITK之上的簡化層,促進其在簡化原型、教育和解釋語言中的應用,
SimpleITK是一個影像分析工具包,內含大量組件,支持一般濾波操作、影像分割和圖形配準,
SimpleITK本身是用C++撰寫的,但也適用于包括Python在內的大量編程語言,
下面就是用SimpleITK和Python創建的可視化的CT/MR圖:
官方地址:https://itk.org/
學習資料:http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/
9、GraphicsMagick
GraphicsMagick號稱影像處理領域的瑞士軍刀,代碼短小卻提供了一個魯棒、高效的工具和庫集合,可用來處理影像的讀取、寫入和操作,
支持超過88種影像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF,
將它用于影像邊緣提取任務,效果如下:
官方資料:https://pypi.org/project/pgmagick/
相關資源:https://github.com/hhatto/pgmagick
10、Pycairo
pyCairo是一個Python的2D圖形渲染庫,可用于繪制矢量圖形的2D圖形,在調整大小或變換時不會丟失清晰度,
下面這個用例是用Pycairo繪制線條、基本形狀和徑向梯度,
官方介紹:https://cairographics.org/
相關資源:https://github.com/pygobject/pycairo
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/263654.html
標籤:Python
上一篇:關于PHP的方法引數型別約束
