溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

jupyter如何使用Pillow包顯示圖像時(shí)inline顯示

發(fā)布時(shí)間:2020-07-30 14:58:06 來源:億速云 閱讀:565 作者:小豬 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了jupyter如何使用Pillow包顯示圖像時(shí)inline顯示,內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來看看吧。

1.單獨(dú)使用Pillow包時(shí),圖片會(huì)彈出新窗口顯示:

from Pillow import Image
img = Image.open('data/empire.jpg')
img.show()

2.我想要在jupyter notebook的瀏覽器上邊顯示圖片怎么辦?

可以使用matplotlab.pyplot【顯示圖片工具】 和 Pillow【圖片處理工具】 結(jié)合使用

%matplotlib inline
import matplotlib.pyplot as plt 
from PIL import Image

img = Image.open('./img.png', 'r')

plt.imshow(img)
plt.axis('on') # 關(guān)掉坐標(biāo)軸為 off
plt.title('image') # 圖像題目
plt.show()

例子如下:

jupyter如何使用Pillow包顯示圖像時(shí)inline顯示

3.pillow顯示灰色圖片+plt顯示多個(gè)圖片

%matplotlib inline
import matplotlib.pyplot as plt 
from PIL import Image

img = Image.open('./img.png', 'r')


gray = img.convert('L')
r,g,b = img.split()       #注意:gray和r,g,b不一樣,gray是三者通過公式算出來的
img_merged = Image.merge('RGB', (r, g, b))

#plt.figure(figsize=(10,5)) #設(shè)置窗口大小
plt.suptitle('Multi_Image') # 圖片名稱

plt.subplot(2,3,1), plt.title('imge:oringe')
plt.imshow(img), plt.axis('off')
plt.subplot(2,3,2), plt.title('gray:weicaise')
plt.imshow(gray), plt.axis('off')
plt.subplot(2,3,3), plt.title('gray:true')# 這里必須加 cmap='gray' ,否則盡管原圖像是灰度圖(下圖1),但是顯示的是偽彩色圖像(下圖2)(如果不加的話)
plt.imshow(gray,cmap='gray'), plt.axis('off')
plt.subplot(2,3,4), plt.title('r')
plt.imshow(r,cmap='gray'), plt.axis('off')
plt.subplot(2,3,5), plt.title('g')
plt.imshow(g,cmap='gray'), plt.axis('off')
plt.subplot(2,3,6), plt.title('b')
plt.imshow(b,cmap='gray'), plt.axis('off')

plt.show()

jupyter如何使用Pillow包顯示圖像時(shí)inline顯示

補(bǔ)充知識(shí):jupyter(ipython)內(nèi)嵌問題:%pylab inline的使用

在使用jupyter(ipython新版本)的畫圖的過程中遇到了一個(gè)有關(guān)內(nèi)嵌命令的問題,將其記錄如下:

1、案例描述

一個(gè)超級(jí)簡(jiǎn)單的畫圖程序,因?yàn)閖upyter是一個(gè)C/S分布式的python編輯環(huán)境,是一個(gè)基于客戶端web頁面的在線編輯器,你可以在瀏覽器中輸入服務(wù)器的ip地址及jupyter的端口號(hào)(默認(rèn)為8888),也可以自己的本機(jī)做服務(wù)器(地址為http://localhost:8888)

未修改的代碼如下:

%matplotlib inline
import numpy as np 
import matplotlib.pyplot as plt 

#以自然數(shù)序列作為多項(xiàng)式的系數(shù),使用polyld函數(shù)創(chuàng)建多項(xiàng)式 
func = np.poly1d(np.array([1,2,3,4]).astype(float)) 
print func
#使用Numpy的linspace函數(shù)創(chuàng)建X軸的數(shù)值,在-10和10之間產(chǎn)生30個(gè)均勻分布的值 
x=np.linspace(-10,10,30) 
#計(jì)算我們?cè)诘谝徊街袆?chuàng)建的多項(xiàng)式的值 
y=func(x) 

plt.plot(x,y) 
plt.xlabel('x',fontsize=12) 
plt.ylabel('y(x)',fontsize=12) 
plt.show()

2、報(bào)錯(cuò):

jupyter如何使用Pillow包顯示圖像時(shí)inline顯示

錯(cuò)誤提示:ImportError: libXext.so.6: cannot open shared object file: No such file or directory

一開始以為是沒有安裝PyQt4的錯(cuò)(雖然我的確沒有安裝該模塊)。

但是仔細(xì)看了下很長(zhǎng)的錯(cuò)誤提示后發(fā)現(xiàn)是pylab沒有內(nèi)嵌進(jìn)去。于是在開頭部分內(nèi)嵌進(jìn)去即可。修改后的代碼如下:

3、解決方案

在代碼的第一行加上%pylab inline

#在開頭添加pylab的內(nèi)嵌語句,pylab是 Matplotlib 和Ipython提供的一個(gè)模塊,提供了類似Matlab的語法。
%pylab inline
%matplotlib inline
import numpy as np 
import matplotlib.pyplot as plt 

#以自然數(shù)序列作為多項(xiàng)式的系數(shù),使用polyld函數(shù)創(chuàng)建多項(xiàng)式 
func = np.poly1d(np.array([1,2,3,4]).astype(float)) 
print func
#使用Numpy的linspace函數(shù)創(chuàng)建X軸的數(shù)值,在-10和10之間產(chǎn)生30個(gè)均勻分布的值 
x=np.linspace(-10,10,30) 
#計(jì)算我們?cè)诘谝徊街袆?chuàng)建的多項(xiàng)式的值 
y=func(x) 

plt.plot(x,y) 
plt.xlabel('x',fontsize=12) 
plt.ylabel('y(x)',fontsize=12) 
plt.show()

加%pylab inline之后可正確運(yùn)行出結(jié)果:

jupyter如何使用Pillow包顯示圖像時(shí)inline顯示

以上就是關(guān)于jupyter如何使用Pillow包顯示圖像時(shí)inline顯示的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI