python讀取并顯示圖片的三種方法(opencv、matplotlib、PIL庫(kù))
前言
在進(jìn)行圖像處理時(shí),經(jīng)常會(huì)用到讀取圖片并顯示出來(lái)這樣的操作,所以本文總結(jié)了python中讀取并顯示圖片的3種方式,分別基于opencv、matplotlib、PIL庫(kù)實(shí)現(xiàn),并給出了示例代碼,介紹如下。
OpenCV
OpenCV是一個(gè)基于BSD許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。 它輕量級(jí)而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。
import matplotlib.pyplot as plt # plt 用于顯示圖片 import cv2 #opencv的顏色通道順序?yàn)閇B,G,R],而matplotlib顏色通道順序?yàn)閇R,G,B],所以需要調(diào)換一下通道位置 img1 = cv2.imread('./Lena.png')[:,:,(2,1,0)] # 讀取和代碼處于同一目錄下的 lena.png img2 = cv2.imread('./Lena.png')[:,:,(2,1,0)] #結(jié)果展示 plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文亂碼 plt.subplot(121) #imshow()對(duì)圖像進(jìn)行處理,畫(huà)出圖像,show()進(jìn)行圖像顯示 plt.imshow(img1) plt.title('圖像1') #不顯示坐標(biāo)軸 plt.axis('off') #子圖2 plt.subplot(122) plt.imshow(img2) plt.title('圖像2') plt.axis('off') # #設(shè)置子圖默認(rèn)的間距 plt.tight_layout() #顯示圖像 plt.show()
Matplotlib
Matplotlib 是 Python 的繪圖庫(kù)。 它可與 NumPy 一起使用,提供了一種有效的 MatLab 開(kāi)源替代方案。 它也可以和圖形工具包一起使用,如 PyQt 和 wxPython。
import matplotlib.pyplot as plt # plt 用于顯示圖片 import matplotlib.image as mpimg # mpimg 用于讀取圖片 img1 = mpimg.imread('./Lena.png') # 讀取和代碼處于同一目錄下的 lena.png img2=mpimg.imread('./Lena.png') #結(jié)果展示 plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文亂碼 plt.subplot(121) #imshow()對(duì)圖像進(jìn)行處理,畫(huà)出圖像,show()進(jìn)行圖像顯示 plt.imshow(img1) plt.title('圖像1') #不顯示坐標(biāo)軸 plt.axis('off') #子圖2 plt.subplot(122) plt.imshow(img2) plt.title('圖像2') plt.axis('off') # #設(shè)置子圖默認(rèn)的間距 plt.tight_layout() #顯示圖像 plt.show()
PIL
PIL(Python Image Library)是python的第三方圖像處理庫(kù),但是由于其強(qiáng)大的功能與眾多的使用人數(shù),幾乎已經(jīng)被認(rèn)為是python官方圖像處理庫(kù)了。。。
PIL可以做很多和圖像處理相關(guān)的事情:
- 圖像歸檔(Image Archives)。
- 圖像展示(Image Display)。
- 圖像處理(Image Processing)。
import matplotlib.pyplot as plt # plt 用于顯示圖片 from PIL import Image img1 = Image.open('./Lena.png') img2 = Image.open('./Lena.png') #結(jié)果展示 plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文亂碼 plt.subplot(121) plt.imshow(img1) plt.title('圖像1') #不顯示坐標(biāo)軸 plt.axis('off') #子圖2 plt.subplot(122) plt.imshow(img2) plt.title('圖像2') plt.axis('off') # #設(shè)置子圖默認(rèn)的間距 plt.tight_layout() #顯示圖像 plt.show()
運(yùn)行結(jié)果
總結(jié)
到此這篇關(guān)于python讀取并顯示圖片的三種方法的文章就介紹到這了,更多相關(guān)python讀取顯示圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python中關(guān)于matplotlib圖片的灰度處理方式
- Python?Matplotlib中使用plt.savefig存儲(chǔ)圖片的方法舉例
- Python調(diào)整matplotlib圖片大小的3種方法匯總
- python數(shù)學(xué)建模之Matplotlib?實(shí)現(xiàn)圖片繪制
- python?matplotlib畫(huà)圖時(shí)坐標(biāo)軸重疊顯示不全和圖片保存時(shí)不完整的問(wèn)題解決
- python使用matplotlib繪制圖片時(shí)x軸的刻度處理
- python matplotlib保存圖片不全問(wèn)題及解決
相關(guān)文章
wxPython多個(gè)窗口的基本結(jié)構(gòu)
這篇文章主要為大家詳細(xì)介紹了wxPython多個(gè)窗口的基本結(jié)構(gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11Python高效解析和操作XML/HTML的實(shí)用指南
在?Python?生態(tài)系統(tǒng)中,lxml?是一個(gè)功能強(qiáng)大且廣泛使用的庫(kù),用于高效地解析和操作?XML?和?HTML?文檔,這篇文章從?lxml?的基礎(chǔ)安裝開(kāi)始,逐步深入講解如何解析文檔、提取數(shù)據(jù)、修改文檔結(jié)構(gòu),并涵蓋了處理大型文檔和使用命名空間等進(jìn)階操作,需要的朋友可以參考下2024-10-10利用Tensorboard繪制網(wǎng)絡(luò)識(shí)別準(zhǔn)確率和loss曲線實(shí)例
今天小編就為大家分享一篇利用Tensorboard繪制網(wǎng)絡(luò)識(shí)別準(zhǔn)確率和loss曲線實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Python編程實(shí)現(xiàn)兩個(gè)文件夾里文件的對(duì)比功能示例【包含內(nèi)容的對(duì)比】
這篇文章主要介紹了Python編程實(shí)現(xiàn)兩個(gè)文件夾里文件的對(duì)比功能,包含內(nèi)容的對(duì)比操作,涉及Python文件與目錄的遍歷、比較、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06Python?Type?Hints?學(xué)習(xí)之從入門(mén)到實(shí)踐
Type?Hints(類型注解)進(jìn)一步強(qiáng)化了Python是一門(mén)強(qiáng)類型語(yǔ)言的特性,它在?Python3.5?中第一次被引入。使用Type?Hints可以讓我們編寫(xiě)出帶有類型的Python代碼,本文將詳細(xì)介紹一下Type?Hints,感興趣的小伙伴可以關(guān)注一下2021-11-11Python numpy二維數(shù)組如何刪除指定行和列
本文展示了如何對(duì)數(shù)組進(jìn)行行列刪除操作,包括刪除單行、單列、多行和多列的方法,通過(guò)具體的運(yùn)行結(jié)果展示,讀者可以清晰地了解到如何在不同情況下進(jìn)行數(shù)據(jù)處理,文章內(nèi)容實(shí)用,適合需要進(jìn)行數(shù)據(jù)處理的讀者參考學(xué)習(xí)2024-09-09