推薦五個(gè)常用的python圖像處理庫(kù)
1. 引言
Python目前是世界上使用最多的編程語(yǔ)言之一。它能夠以更少的工作量和更少的代碼行數(shù)來(lái)完成許多事情。它還可以使用很少的代碼行來(lái)方便地編輯和創(chuàng)建圖像。
本文重點(diǎn)介紹,在圖像處理領(lǐng)域,我們最常使用的一些Python開(kāi)源庫(kù)。
2. Pillow庫(kù)
Pillow是Python中常用的圖像處理庫(kù)之一。它提供了許多操作圖像的函數(shù),如調(diào)整大小、濾波操作等。這是Python中最好用的圖像處理庫(kù)之一。唯一的缺點(diǎn)是它已經(jīng)很久沒(méi)有更新了。
安裝安庫(kù)的命令如下:
pip install pillow
這里通過(guò)一個(gè)簡(jiǎn)單的代碼片段來(lái)展示這個(gè)庫(kù)是如何工作的。讓我們使用Pillow來(lái)增加對(duì)比度,讓深色圖像變得更漂亮一些。
代碼如下:
from PIL import Image,ImageEnhance img_original = Image.open("dark.jpg") img_original.show("Original Image") img = ImageEnhance.Contrast(img_original) img.enhance(3.8).show("Image With More Contrast")
運(yùn)行效果如下:
3. Numpy庫(kù)
NumPy代表Numerical Python
。它是一個(gè)Python庫(kù),可以幫助我們處理所有類(lèi)型的科學(xué)計(jì)算。NumPy是在執(zhí)行任何類(lèi)型的數(shù)據(jù)預(yù)處理或數(shù)據(jù)科學(xué)相關(guān)任務(wù)時(shí)導(dǎo)入的第一個(gè)庫(kù)。此外,它還可以用來(lái)進(jìn)行圖像處理操作。
使用NumPy,我們可以輕松地操縱圖像的RGB值。舉例如下:
from PIL import Image import numpy as np img = np.array(Image.open('0.jpg')) img_red = img.copy() img_red[:, :, (1, 2)] = 0 img_green = img.copy() img_green[:, :, (0, 2)] = 0 img_blue = img.copy() img_blue[:, :, (0, 1)] = 0 img_ORGB = np.concatenate((img,img_red, img_green, img_blue), axis=1) img_converted = Image.fromarray(img_ORGB) img_converted.show() ## Combine Image Contains all four images
運(yùn)行結(jié)果如下:
4. Scipy庫(kù)
Scipy是Python中主要用于數(shù)學(xué)和科學(xué)計(jì)算的庫(kù),但同時(shí)它也可以用于處理多維圖像。這是一個(gè)非常大的庫(kù),包含許多科學(xué)計(jì)算的工具。當(dāng)使用Scipy庫(kù)進(jìn)行圖像處理時(shí),只需導(dǎo)入scipy.ndimage模塊即可。
安裝scipy庫(kù)的命令如下:
pip install scipy
使用該庫(kù)進(jìn)行高斯模糊的樣例代碼如下:
from scipy import misc import matplotlib.pyplot as plt fig = plt.figure() plt.gray() # show the filtered result in grayscale ax1 = fig.add_subplot(121) # left side ax2 = fig.add_subplot(122) # right side ascent = misc.ascent() result = gaussian_filter(ascent, sigma=5) ax1.imshow(ascent) ax2.imshow(result) plt.show()
運(yùn)行結(jié)果如下:
5. Opencv庫(kù)
OpenCV是最常用的一種圖像處理庫(kù),可以方便地與網(wǎng)絡(luò)攝像頭、圖像和視頻進(jìn)行交互。它可以執(zhí)行多種實(shí)時(shí)任務(wù),于2000年首次發(fā)布。它因其簡(jiǎn)單性和代碼可讀性而出名。目前,它主要用于計(jì)算機(jī)視覺(jué)任務(wù),如人臉檢測(cè)和識(shí)別、目標(biāo)檢測(cè)等。
安裝該庫(kù)的命令如下:
pip install opencv-python
使用該庫(kù),進(jìn)行crop操作的樣例如下:
import cv2 img = cv2.imread("images/test.jpg") imgCropped = img[50:283,25:190] shape = imgCropped.shape print(shape[0]) imgCropped = cv2.resize(imgCropped,(shape[0]*12//10,shape[1]*2)) cv2.imshow("Image cropped",imgCropped) cv2.imshow("Image",img) cv2.waitKey(0)
運(yùn)行結(jié)果如下:
6. Pgmagick庫(kù)
Pgmagick是Python庫(kù)中GraphicsMagick的補(bǔ)充,它提供了許多圖像處理的功能,比如調(diào)整大小、旋轉(zhuǎn)、銳化、漸變等操作。
安裝pgmagick的命令如下:
pip install pgmagick
下面是使用該庫(kù)進(jìn)行縮放的樣例代碼:
from pgmagick.api import Image img = Image('fox.png') # scaling image up to 1.5x img.scale((150, 100), 'fox_scaled')
上述代碼的運(yùn)行結(jié)果如下:
7. 總結(jié)
本文重點(diǎn)介紹了在Python中進(jìn)行圖像處理的五個(gè)常用的開(kāi)源庫(kù),這五個(gè)庫(kù)功能強(qiáng)大,包含各式各樣的圖像處理函數(shù),極大地提升了開(kāi)發(fā)效率,推薦大家積極使用。
到此這篇關(guān)于推薦五個(gè)常用的python圖像處理庫(kù)的文章就介紹到這了,更多相關(guān)Python圖像處理庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Python中marshal對(duì)象序列化的相關(guān)知識(shí)
這篇文章主要介紹了在Python中marshal對(duì)象序列化的相關(guān)知識(shí),是Python進(jìn)階學(xué)習(xí)中序列化相關(guān)的知識(shí),需要的朋友可以參考下2015-07-07Python調(diào)用REST API接口的幾種方式匯總
這篇文章主要介紹了Python調(diào)用REST API接口的幾種方式匯總,幫助大家更好的利用python進(jìn)行自動(dòng)化運(yùn)維,感興趣的朋友可以了解下2020-10-10Python Pandas讀寫(xiě)txt和csv文件的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python Pandas實(shí)現(xiàn)讀寫(xiě)txt和csv文件查找的方法,文中的示例代碼積極性,感興趣的小伙伴可以跟隨小編一起了解一下2022-09-09Python數(shù)據(jù)結(jié)構(gòu)鏈表操作從基礎(chǔ)到高級(jí)實(shí)例深究
鏈表是一種基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),它由一系列節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)都包含數(shù)據(jù)和指向下一個(gè)節(jié)點(diǎn)的引用,在Python中,可以使用類(lèi)來(lái)實(shí)現(xiàn)鏈表,本文將介紹如何實(shí)現(xiàn)鏈表,并提供一些豐富的示例代碼來(lái)幫助你更好地理解其原理和應(yīng)用2023-12-12Python使用Pygame實(shí)現(xiàn)時(shí)鐘效果
這篇文章主要為大家詳細(xì)介紹了Python使用Pygame實(shí)現(xiàn)時(shí)鐘效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08Python中單線(xiàn)程、多線(xiàn)程和多進(jìn)程的效率對(duì)比實(shí)驗(yàn)實(shí)例
這篇文章主要介紹了Python單線(xiàn)程多線(xiàn)程和多進(jìn)程效率對(duì)比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05關(guān)于對(duì)python中self的深入理解
self代表類(lèi)的實(shí)例,而非類(lèi),下面這篇文章主要給大家介紹了關(guān)于對(duì)python中self的深入理解,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09pytorch人工智能之torch.gather算子用法示例
這篇文章主要介紹了pytorch人工智能之torch.gather算子用法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09