python讀取并顯示圖片的三種方法(opencv、matplotlib、PIL庫)
前言
在進(jìn)行圖像處理時(shí),經(jīng)常會用到讀取圖片并顯示出來這樣的操作,所以本文總結(jié)了python中讀取并顯示圖片的3種方式,分別基于opencv、matplotlib、PIL庫實(shí)現(xiàn),并給出了示例代碼,介紹如下。
OpenCV
OpenCV是一個(gè)基于BSD許可(開源)發(fā)行的跨平臺計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。 它輕量級而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。
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()對圖像進(jìn)行處理,畫出圖像,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 的繪圖庫。 它可與 NumPy 一起使用,提供了一種有效的 MatLab 開源替代方案。 它也可以和圖形工具包一起使用,如 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()對圖像進(jìn)行處理,畫出圖像,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的第三方圖像處理庫,但是由于其強(qiáng)大的功能與眾多的使用人數(shù),幾乎已經(jīng)被認(rèn)為是python官方圖像處理庫了。。。
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中pytest命令行實(shí)現(xiàn)環(huán)境切換
在自動(dòng)化測試過程中經(jīng)常需要在不同的環(huán)境下進(jìn)行測試驗(yàn)證,所以寫自動(dòng)化測試代碼時(shí)需要考慮不同環(huán)境切換的情況,本文主要介紹了Python中pytest命令行實(shí)現(xiàn)環(huán)境切換,感興趣的可以了解一下2023-07-07
對python requests發(fā)送json格式數(shù)據(jù)的實(shí)例詳解
今天小編就為大家分享一篇對python requests發(fā)送json格式數(shù)據(jù)的實(shí)例詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Python標(biāo)準(zhǔn)庫之zipfile和tarfile模塊的使用
zipfile和tarfile是Python中常用的壓縮包模塊,本文將通過示例詳細(xì)講解一下這兩個(gè)模塊的使用方法,快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
Python中使用socket發(fā)送HTTP請求數(shù)據(jù)接收不完整問題解決方法
這篇文章主要介紹了Python中使用socket發(fā)送HTTP請求數(shù)據(jù)接收不完整問題解決方法,本文使用一個(gè)循環(huán)解決了數(shù)據(jù)不完整問題,需要的朋友可以參考下2015-02-02

