大數據文摘出品
編譯:張秋玥、小七、蔣寶尚
本文主要介紹了一些簡單易懂最常用的圖像處理庫
當今世界充滿了各種數據,而圖像是其中高的重要組成部分。然而,若想其有所應用,我們需要對這些圖像進行處理。圖像處理是分析和操縱數字圖像的過程,旨在提高其質量或從中提取一些信息,然后將其用于某些方面。
圖像處理中的常見任務包括顯示圖像,基本操作(如裁剪、翻轉、旋轉等),圖像分割,分類和特征提取,圖像恢復和圖像識別等。之成為圖像處理任務的最佳選擇,是因為這一科學編程語言日益普及,并且其自身免費提供許多最先進的圖像處理工具。
讓我們看一下用于圖像處理任務的一些常用庫。
1.
-image是一個基于numpy數組的開源包。它實現了用于研究、教育和工業應用的算法和實用程序。即使是對于那些剛接觸的人,它也是一個相當簡單的庫。此庫代碼質量非常高并已經過同行評審,是由一個活躍的志愿者社區編寫的。
使用說明文檔:
可使用“”來導入該庫。大多數功能都能在子模塊中找到。
import matplotlib.pyplot as plt
%matplotlib inline
from skimage import data,filters
image = data.coins()
# ... or any other NumPy array!
edges = filters.sobel(image)
plt.imshow(edges, cmap='gray')
模版匹配(使用函數)
上還有更多例子。
2. Numpy
Numpy是編程的核心庫之一,支持數組結構。圖像本質上是包含數據點像素的標準Numpy數組。因此,通過使用基本的NumPy操作——例如切片、脫敏和花式索引,可以修改圖像的像素值??梢允褂眉虞d圖像并使用顯示。
使用說明文檔:
用法舉例:使用Numpy來對圖像進行脫敏處理
import?numpy?as?np
from skimage import data
import matplotlib.pyplot as plt
%matplotlib inline
image = data.camera()
type(image)
numpy.ndarray #Image is a numpy array
mask = image < 87
image[mask]=255
plt.imshow(image, cmap='gray')
3. Scipy
scipy是的另一個核心科學模塊,就像Numpy一樣,可用于基本的圖像處理和處理任務。值得一提的是,子模塊scipy.提供了在n維NumPy數組上運行的函數。該軟件包目前包括線性和非線性濾波、二進制形態、B樣條插值和對象測量等功能。
使用說明文檔:
#-and-
用法舉例:使用SciPy的高斯濾波器對圖像進行模糊處理
from?scipy?import?misc,ndimage
face = misc.face()
blurred_face = ndimage.gaussian_filter(face, sigma=3)
very_blurred = ndimage.gaussian_filter(face, sigma=5)
#Results
plt.imshow(
)
4. PIL/
PIL( )是一個免費的編程語言庫,它增加了對打開、處理和保存許多不同圖像文件格式的支持。然而,它的發展停滯不前,其最后一次更新還是在2009年。幸運的是,PIL有一個正處于積極開發階段的分支,它非常易于安裝。能在所有主要操作系統上運行并支持 3。該庫包含基本的圖像處理功能,包括點操作、使用一組內置卷積內核進行過濾以及顏色空間轉換。
使用說明文檔:
用法舉例:使用增強中的圖像
from PIL import Image, ImageFilter
#Read image
im = Image.open( 'image.jpg' )
#Display image
im.show()
from PIL import ImageEnhance
enh = ImageEnhance.Contrast(im)
enh.enhance(1.8).show("30% more contrast")
5. -
(開源計算機視覺庫,Open )是計算機視覺應用中使用最廣泛的庫之一。-是的 API。-不僅速度快(因為后臺由用C / C ++編寫的代碼組成),也易于編碼和部署(由于前端的包裝器)。這使其成為執行計算密集型計算機視覺程序的絕佳選擇。
使用說明文檔:
用法舉例:使用創建一個名為''的新水果的功能
6.
也是用于構建計算機視覺應用程序的開源框架。通過它可以訪問如等高性能的計算機視覺庫,而無需首先了解位深度、文件格式或色彩空間等。學習難度遠遠小于,并且正如他們的標語所說,“它使計算機視覺變得簡單”。支持的一些觀點是:
使用說明文檔:
用法舉例
7.
是另一個用于的計算機視覺和圖像處理庫。它包含傳統的圖像處理功能(如濾波和形態學操作)以及用于特征計算的更現代的計算機視覺功能(包括興趣點檢測和局部描述符)。該接口使用,適用于快速開發,但算法是用C ++實現的,并且針對速度進行了優化。庫運行很快,它的代碼很簡單,(對其它庫的)依賴性也很小。建議閱讀他們的官方文檔以了解更多內容。
使用說明文檔:
用法舉例
庫使用簡單的代碼來完成工作。對于“尋找Wally”的問題,完成的得很好,而且代碼量非常小。
8.
ITK( and )是一個開源的跨平臺系統,為開發人員提供了一整套用于圖像分析的軟件工具。其中,是一個建立在ITK之上的簡化層,旨在促進其在快速原型設計、教育以及腳本語言中的使用。是一個包含大量組件的圖像分析工具包,支持一般的過濾操作、圖像分割和配準。本身是用C++編寫的,但可用于包括在內的大量編程語言。
使用說明文檔:
這里有大量說明了如何使用進行教育和研究活動的 。中演示了如何使用進行使用和R編程語言的交互式圖像分析。
用法舉例
下面的動畫是使用和創建的可視化的嚴格CT / MR配準過程。
9.
是庫基于的包裝器。圖像處理系統有時被稱為圖像處理的瑞士軍刀。它提供了強大而高效的工具和庫集合,支持超過88種主要格式圖像的讀取、寫入和操作,包括DPX,GIF,JPEG,JPEG-2000,PNG,PDF,PNM和TIFF等重要格式。
使用說明文檔:
用法舉例:圖片縮放、邊緣提取
圖片縮放
邊緣提取
10.
是圖形庫cairo的一組綁定。Cairo是一個用于繪制矢量圖形的2D圖形庫。矢量圖形很有趣,因為它們在調整大小或進行變換時不會降低清晰度。庫可以從調用cairo命令。
使用說明文檔:
用法:可以繪制線條、基本形狀和徑向漸變
以上就是一些免費的優秀圖像處理庫。有些很知名,你可能已經知道或者用過,有些可能對你來說還是新的。那正好現在就上手操作一下,試一試吧!
相關報道:
實習/全職編輯記者招聘ing
加入我們圖像處理常用軟件,親身體驗一家專業科技媒體采寫的每個細節,在最有前景的行業,和一群遍布全球最優秀的人一起成長。坐標北京·清華東門圖像處理常用軟件,在大數據文摘主頁對話頁回復“招聘”了解詳情。簡歷請直接發送至
志愿者介紹