概述
本文介绍在notebook中显示图片。
本文分两部分,一部分是将图片文件显示到notebook,另一部分是将numpy格式的图片显示到notebook
第一部分,将图片文件显示到notebook中
PIL+IPython.display(推荐)
from PIL import Image
import IPython.display as display
for filepath in filepaths:
display.display(Image.open(filepath))
可显示多张图片
matplotlib
import matplotlib.pyplot as plt
for filepath in filepaths:
plt.imshow(Image.open(filepath))
plt.show()
注意:
- 当图片过大时,会缩小显示
- 灰度图等特殊像素图时,可能会显示成彩色图
有时,显示特殊图片时,会更方便,如下图:
看上去没有内容,但使用matplotlib能很方便的显示出来
IPython.display
import IPython.display as display
for filepath in filepaths:
display.display(display.Image(filepath))
可显示多张图片
PIL
from PIL import Image
for filepath in filepaths:
Image.open(filepaths)
用Image.open(filepaths)只会显示最后一张图片
第二部分,将numpy数据显示成图片
将图片读取并转成numpy矩阵,
RGB图如下:
import numpy as np
from PIL import Image
img=Image.open(r"C:\Users\mym\Desktop\文件接收柜\下载 (5).png")
arr=np.array(img)
灰度图如下:
import numpy as np
from PIL import Image
img_g=Image.open(r"C:\Users\mym\Desktop\文件接收柜\猫1.jpg").convert("L")
arr_g=np.array(img_g)
我们常常要将numpy矩阵的图片显示到notebook中,主要有以下几个方法:
PIL.Image(简单)
显示RGB图:
from PIL import Image
Image.fromarray(arr)
小结:按照原始大小显示图片(图片过大会等比例缩小)
显示灰度图
Image.fromarray(arr_g)
执行结果:
小结:按照原始大小显示灰度图片(图片过大会等比例缩小)
在循环中 不 显示图片
for i in range(5):
Image.fromarray(arr)
IPython.display+PIL(推荐)
需要用到Image.fromarray()
显示RGB图:
from PIL import Image
import IPython.display as display
display.display(Image.fromarray(arr))
小结:按照原始大小显示图片(图片过大会等比例缩小)
显示灰度图
from PIL import Image
import IPython.display as display
display.display(Image.fromarray(arr_g ))
执行结果:
小结:按照原始大小显示灰度图片(图片过大会等比例缩小)
循环显示多张图片
import IPython.display as display
for i in range(5):
display.display(Image.fromarray(arr))
循环显示一张图片
import IPython.display as display
for i in range(5):
display.clear_output() # 清空
display.display(Image.fromarray(arr))
matplotlib
matplotlib显示大图时,会按比例缩小;显示特殊图片时,会做改动,不会按照原图显示
显示RGB图:
import matplotlib.pyplot as plt
plt.imshow(arr)
plt.show()
执行结果如下:
缺点:没有按照原大小显示
显示灰度图(默认是伪彩色图):
matplotlib显示灰度图时,显示成伪彩色图,不会按照原图显示
import matplotlib.pyplot as plt
plt.imshow(arr_g)
plt.show()
注意: 显示灰度图时,显示成伪彩色图
显示灰度图:
import matplotlib.pyplot as plt
plt.imshow(arr_g,cmap="gray")
plt.show()
循环显示多张图片
import matplotlib.pyplot as plt
for i in range(5):
plt.imshow(arr_g,cmap="gray")
plt.show()
注意:必须加上plt.show(),否则只显示一张图片






