您好,登錄后才能下訂單哦!
這篇文章主要介紹“2021年最新用于圖像處理的Python庫的方法”,在日常操作中,相信很多人在2021年最新用于圖像處理的Python庫的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”2021年最新用于圖像處理的Python庫的方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
OpenCV是最著名和應用最廣泛的開源庫之一,用于圖像處理、目標檢測、人臉檢測、圖像分割、人臉識別等計算機視覺任務。除此之外,它還可以用于機器學習任務。
這是英特爾在2002年開發的。它是用C++編寫的,但是開發人員已經提供了Python和java綁定。它易于閱讀和使用。
為了建立計算機視覺和機器學習模型,OpenCV有超過2500種算法。這些算法對于執行各種任務非常有用,例如人臉識別、目標檢測等。讓我們看一些可以使用OpenCV執行的示例:
灰度縮放
灰度縮放是一種將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(0)
旋轉圖像
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))
OpenCV還提供了除我們到目前為止討論的功能之外的其他功能。除此之外,它還有助于人臉檢測、圖像分割、特征提取、目標檢測、三維重建等。
有關更多信息,請查看官方文檔:https://opencv.org/
Scikit Image是另一個偉大的開源圖像處理庫。它幾乎適用于任何計算機視覺任務。它是最簡單、最直接的庫之一。這個庫的某些部分是用Cython編寫的(它是python編程語言的超集,旨在使python比C語言更快)。
它提供了大量的算法,包括分割、顏色空間操作、幾何變換、濾波、形態學、特征檢測等。
Scikit Image使用Numpy數組作為圖像對象。讓我們看看如何在scikit圖像中執行活動輪廓操作。活動輪廓描述圖像中形狀的邊界。
檢查以下活動輪廓操作代碼:
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(0, 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[0].imshow(image, cmap=plt.cm.gray) ax[0].set_title("Original Image") ax[1].imshow(image, cmap=plt.cm.gray)
有關更多信息,請查看官方文檔:https://scikit-image.org/docs/stable/auto_examples/
SciPy主要用于數學和科學計算,但有時也可以使用子模塊SciPy.ndimage用于基本的圖像操作和處理任務。
歸根結底,圖像只是多維數組,SciPy提供了一組用于操作n維Numpy操作的函數。SciPy提供了一些基本的圖像處理操作,如人臉檢測、卷積、圖像分割、讀取圖像、特征提取等。
除此之外,還可以執行過濾,在圖像上繪制輪廓線。
請檢查以下代碼以使用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))
有關更多信息,請查看官方文檔:https://docs.scipy.org/doc/scipy/reference/ndimage.html
它是一個用于圖像處理任務的開放源碼python庫。它提供了其他庫通常不提供的特殊功能,如過濾、打開、操作和保存圖像。這個庫支持多種文件格式,這使它更高效。PIL還支持圖像處理、圖像顯示和圖像存檔等功能。讓我們看看使用Pillow/PIL的圖像增強。
更改圖像的清晰度:
有關更多信息,請查看官方文檔:https://pillow.readthedocs.io/en/stable/index.html
Matplotlib主要用于二維可視化,如散點圖、條形圖、直方圖等,但我們也可以將其用于圖像處理。從圖像中提取信息是有效的。它不支持所有的文件格式。
背景顏色更改操作后,請檢查以下圖像:
有關更多信息,請查看官方文檔:https://matplotlib.org/stable/tutorials/introductory/images.html
它也稱為圖像分割和注冊工具包。它是一個用于圖像注冊和圖像分割的開源庫。像OpenCV這樣的庫將圖像視為一個數組,但是這個庫將圖像視為空間中某個區域上的一組點。檢查以下示例:
圖像分割
有關更多信息,請查看官方文檔:https://itk.org/
它是一個用于數值分析的開放源碼python庫。它包含一個矩陣和多維數組作為數據結構。但是NumPy也可以用于圖像處理任務,例如圖像裁剪、操作像素和像素值的蒙版。
檢查下圖以從圖像中提取綠色/紅色/藍色通道:
有關更多信息,請查看官方文檔:https://scikit-image.org/docs/dev/user_guide/numpy_images.html
它是另一個用于計算機視覺和圖像處理的開放源碼python庫。它是為生物信息學而設計的。它提供了很多算法,這些算法是用C++編寫的,速度很快,使用了一個好的Python接口。它以NumPy數組讀取和寫入圖像。
使用Mahotas檢查下面的模板匹配圖像:
有關更多信息,請查看官方文檔:https://mahotas.readthedocs.io/en/latest/#
到此,關于“2021年最新用于圖像處理的Python庫的方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。