2021年用於影象處理的Python頂級庫

介紹

正如IDC所指出的,數字資訊將飆升至175 ZB,而這些資訊中的巨大一部分是圖片。資料科學家需要(預先)測量這些影象,然後再將它們放入人工智慧和深度學習模型中。在愉快的部分開始之前,他們需要做重要的工作。

為了快速地處理大量資訊,科學家需要利用影象準備工具來完成人工智慧和深度學習任務。

在本文中,我將深入研究Python中最有用的影象處理庫,這些庫正在人工智慧和深度學習任務中得到大力利用。我們開始吧!

2021年用於影象處理的Python頂級庫

目錄

OpenCV

Scikit-Image

Scipy

Python Image Library (Pillow/PIL)

Matplotlib

SimpleITK

Numpy

Mahotas

OpenCV

OpenCV是最著名和應用最廣泛的開源庫之一,用於影象處理、目標檢測、人臉檢測、影象分割、人臉識別等計算機視覺任務。除此之外,它還可以用於機器學習任務。

這是英特爾在2002年開發的。它是用C++編寫的,但是開發人員已經提供了Python和java繫結。它易於閱讀和使用。

為了建立計算機視覺和機器學習模型,OpenCV有超過2500種演算法。這些演算法對於執行各種任務非常有用,例如人臉識別、目標檢測等。讓我們看一些可以使用OpenCV執行的示例:

2021年用於影象處理的Python頂級庫

灰度縮放

灰度縮放是一種將3通道影象(如RGB、HSV等)轉換為單通道影象(即灰度)的方法。最終的影象在全白和全黑之間變化。灰度縮放的重要性包括降維(將3通道影象轉換為單通道影象)、降低模型複雜度等。

下面的程式碼片段顯示了OpenCV中的灰度縮放

import cv2 as cv

img = cv。imread(‘example。jpg’)

cv。imshow(‘Original’, img)

cv。waitKey()

#Use cvtColor, to convert to grayscale

gray_img = cv。cvtColor(img, cv。COLOR_BGR2GRAY)

cv。imshow(‘Grayscale’, gray_img)

cv。waitKey()

2021年用於影象處理的Python頂級庫

旋轉影象

OpenCV有助於使用從0到360度的任意角度旋轉影象。

檢查以下程式碼以將影象旋轉180度。

import cv2 as cv

import matplotlib。pyplot as plt

img = cv。imread(‘example。jpg’)

h, w = image。shape[:2]

rot_matrix = cv。getRotationMatrix2D((w/2,h/2), -180, 0。5)

rot_image = cv。warpAffine(img, rot_matrix, (w, h))

plt。imshow(cv。cvtColor(rot_image, cv。COLOR_BGR2RGB))

2021年用於影象處理的Python頂級庫

OpenCV還提供了除我們到目前為止討論的功能之外的其他功能。除此之外,它還有助於人臉檢測、影象分割、特徵提取、目標檢測、三維重建等。

有關更多資訊,請檢視官方文件:https://opencv。org/

Scikit-Image

Scikit Image是另一個偉大的開源影象處理庫。它幾乎適用於任何計算機視覺任務。它是最簡單、最直接的庫之一。這個庫的某些部分是用Cython編寫的(它是python程式語言的超集,旨在使python比C語言更快)。

它提供了大量的演算法,包括分割、顏色空間操作、幾何變換、濾波、形態學、特徵檢測等。

Scikit Image使用Numpy陣列作為影象物件。讓我們看看如何在scikit影象中執行活動輪廓操作。

活動輪廓描述影象中形狀的邊界。

2021年用於影象處理的Python頂級庫

檢查以下活動輪廓操作程式碼:

import numpy as np

import matplotlib。pyplot as plt

from skimage。color import rgb2gray

from skimage import data

from skimage。filters import gaussian

from skimage。segmentation import active_contour

image = data。astronaut()

# Data for circular boundary

s = np。linspace(, 2*np。pi, 400)

x = 220 + 100*np。cos(s)

y = 100 + 100*np。sin(s)

init = np。array([x, y])。T

# formation of the active contour

centre = active_contour(gaussian(image, 3),init, alpha=0。015, beta=10, gamma=0。001)

figure, axis = plt。subplots(1, 2, figsize=(7, 7))

ax[]。imshow(image, cmap=plt。cm。gray)

ax[]。set_title(“Original Image”)

ax[1]。imshow(image, cmap=plt。cm。gray)

2021年用於影象處理的Python頂級庫

有關更多資訊,請檢視官方文件:https://scikit-image。org/docs/stable/auto_examples/

Scipy

SciPy主要用於數學和科學計算,但有時也可以使用子模組SciPy。ndimage用於基本的影象操作和處理任務。

歸根結底,影象只是多維陣列,SciPy提供了一組用於操作n維Numpy操作的函式。SciPy提供了一些基本的影象處理操作,如人臉檢測、卷積、影象分割、讀取影象、特徵提取等。

除此之外,還可以執行過濾,在影象上繪製輪廓線。

2021年用於影象處理的Python頂級庫

請檢查以下程式碼以使用SciPy模糊影象:

from scipy import ndimage, misc

from matplotlib import pyplot as plt

f = misc。face()

b_face = ndimage。gaussian_filter(f, sigma=3)

figure, axis = plt。subplots(1, 2, figsize=(16, 8))

2021年用於影象處理的Python頂級庫

有關更多資訊,請檢視官方文件:https://docs。scipy。org/doc/scipy/reference/ndimage。html

Python Image Library (Pillow/PIL)

它是一個用於影象處理任務的開放原始碼python庫。它提供了其他庫通常不提供的特殊功能,如過濾、開啟、操作和儲存影象。這個庫支援多種檔案格式,這使它更高效。PIL還支援影象處理、影象顯示和影象存檔等功能。讓我們看看使用Pillow/PIL的影象增強。

2021年用於影象處理的Python頂級庫

更改影象的清晰度:

2021年用於影象處理的Python頂級庫

有關更多資訊,請檢視官方文件:https://pillow。readthedocs。io/en/stable/index。html

Matplotlib

Matplotlib主要用於二維視覺化,如散點圖、條形圖、直方圖等,但我們也可以將其用於影象處理。從影象中提取資訊是有效的。它不支援所有的檔案格式。

背景顏色更改操作後,請檢查以下影象:

2021年用於影象處理的Python頂級庫

有關更多資訊,請檢視官方文件:https://matplotlib。org/stable/tutorials/introductory/images。html

SimpleITK

它也稱為影象分割和註冊工具包。它是一個用於影象註冊和影象分割的開源庫。像OpenCV這樣的庫將影象視為一個數組,但是這個庫將影象視為空間中某個區域上的一組點。檢查以下示例:

2021年用於影象處理的Python頂級庫

影象分割

有關更多資訊,請檢視官方文件:https://itk。org/

Numpy

它是一個用於數值分析的開放原始碼python庫。它包含一個矩陣和多維陣列作為資料結構。但是NumPy也可以用於影象處理任務,例如影象裁剪、操作畫素和畫素值的蒙版。

2021年用於影象處理的Python頂級庫

檢查下圖以從影象中提取綠色/紅色/藍色通道:

有關更多資訊,請檢視官方文件:https://scikit-image。org/docs/dev/user_guide/numpy_images。html

Mahotas

它是另一個用於計算機視覺和影象處理的開放原始碼python庫。它是為生物資訊學而設計的。它提供了很多演算法,這些演算法是用C++編寫的,速度很快,使用了一個好的Python介面。它以NumPy陣列讀取和寫入影象。

使用Mahotas檢查下面的模板匹配影象:

2021年用於影象處理的Python頂級庫

有關更多資訊,請檢視官方文件:https://mahotas。readthedocs。io/en/latest/#

結論

因此,在本文中,我們介紹了2021年機器學習用python中排名前8位的影象處理庫。我希望你從這個部落格中學到一些東西,對你的專案有益。

☆ END ☆

如果看到這裡,說明你喜歡這篇文章,請轉發、點贊。微信搜尋「uncle_pn」,歡迎新增小編微信「 mthler」,每日朋友圈更新一篇高質量博文。