jupyter 使用Pillow包顯示影象時inline顯示方式
阿新 • • 發佈:2020-04-26
1.單獨使用Pillow包時,圖片會彈出新視窗顯示:
from Pillow import Image img = Image.open('data/empire.jpg') img.show()
2.我想要在jupyter notebook的瀏覽器上邊顯示圖片怎麼辦?
可以使用matplotlab.pyplot【顯示圖片工具】 和 Pillow【圖片處理工具】 結合使用
%matplotlib inline import matplotlib.pyplot as plt from PIL import Image img = Image.open('./img.png','r') plt.imshow(img) plt.axis('on') # 關掉座標軸為 off plt.title('image') # 影象題目 plt.show()
例子如下:
3.pillow顯示灰色圖片+plt顯示多個圖片
%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,b)) #plt.figure(figsize=(10,5)) #設定視窗大小 plt.suptitle('Multi_Image') # 圖片名稱 plt.subplot(2,3,1),plt.title('imge:oringe') plt.imshow(img),plt.axis('off') plt.subplot(2,2),plt.title('gray:weicaise') plt.imshow(gray),3),plt.title('gray:true')# 這裡必須加 cmap='gray',否則儘管原影象是灰度圖(下圖1),但是顯示的是偽彩色影象(下圖2)(如果不加的話) plt.imshow(gray,cmap='gray'),4),plt.title('r') plt.imshow(r,5),plt.title('g') plt.imshow(g,6),plt.title('b') plt.imshow(b,plt.axis('off') plt.show()
補充知識:jupyter(ipython)內嵌問題:%pylab inline的使用
在使用jupyter(ipython新版本)的畫圖的過程中遇到了一個有關內嵌命令的問題,將其記錄如下:
1、案例描述
一個超級簡單的畫圖程式,因為jupyter是一個C/S分散式的python編輯環境,是一個基於客戶端web頁面的線上編輯器,你可以在瀏覽器中輸入伺服器的ip地址及jupyter的埠號(預設為8888),也可以自己的本機做伺服器(地址為http://localhost:8888)
未修改的程式碼如下:
%matplotlib inline import numpy as np import matplotlib.pyplot as plt #以自然數序列作為多項式的係數,使用polyld函式建立多項式 func = np.poly1d(np.array([1,2,4]).astype(float)) print func #使用Numpy的linspace函式建立X軸的數值,在-10和10之間產生30個均勻分佈的值 x=np.linspace(-10,10,30) #計算我們在第一步中建立的多項式的值 y=func(x) plt.plot(x,y) plt.xlabel('x',fontsize=12) plt.ylabel('y(x)',fontsize=12) plt.show()
2、報錯:
錯誤提示:ImportError: libXext.so.6: cannot open shared object file: No such file or directory
一開始以為是沒有安裝PyQt4的錯(雖然我的確沒有安裝該模組)。
但是仔細看了下很長的錯誤提示後發現是pylab沒有內嵌進去。於是在開頭部分內嵌進去即可。修改後的程式碼如下:
3、解決方案
在程式碼的第一行加上%pylab inline
#在開頭新增pylab的內嵌語句,pylab是 Matplotlib 和Ipython提供的一個模組,提供了類似Matlab的語法。 %pylab inline %matplotlib inline import numpy as np import matplotlib.pyplot as plt #以自然數序列作為多項式的係數,使用polyld函式建立多項式 func = np.poly1d(np.array([1,fontsize=12) plt.show()
加%pylab inline之後可正確執行出結果:
以上這篇jupyter 使用Pillow包顯示影象時inline顯示方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。