Python使用matplotlib的pyplot包

引言

python中读图片显示图片等之前都用的scipy.misc,但是python中scipy.misc.imread和imshow现在好像在1.2.0已经不支持了。开始寻求用新的方式:matplotlib.pyplot——

pyplot读取,显示及关闭一张图像

# -*- coding: utf-8 -*-
import numpy as np
from matplotlib import pyplot as pt
#data = np.random.randint(0,256,(100,100,3))
img = pt.imread('validation_code.jpg') # 从本地读取图像
print img.shape # 打印img尺寸
Title = 'test'
pt.title(Title) # 显示图像时展示的标题
pt.axis('off') # 坐标轴的开关 'on' 'off'
pt.imshow(img) # 显示的图像数据
pt.show() # 只有最后pt.show() 才能展示出来 但是pt.show()使用后是无法自动关闭只能通过鼠标点击关闭
# pt.pause(1) # 延时一秒
# pt.close() #和上一行共同组成表示显示一秒后关闭图像 注意close()和pt.show()不能同时使用

pyplot一次显示多张图像

# -*- coding: utf-8 -*-
import numpy as np
from matplotlib import pyplot as pt
data = np.random.randint(0,256,(100,100,3)) # 新建一个100*10*3随机矩阵, 代表图像矩阵数据
img = pt.imread('validation_code.jpg') # 读取本地图像
# 以下展示两张图像, 以1行2列的形式
pt.subplot(1,2,1)
pt.axis('off')
Title1 = 'validataion_code'
pt.title(Title1)
pt.imshow(img)
pt.subplot(1,2,2)
pt.axis('off')
Title2 = 'Random_image'
pt.title(Title2)
pt.imshow(data)
pt.show()

pyplot循环显示图像

pyplot循环显示图像,即显示一张图像一定时间,然后自动关闭图像,进入下一循环再次显示

# -*- coding: utf-8 -*-
import numpy as np
import openslide
import time
import math
import matplotlib.pyplot as plt
start=time.time()
img_WSI = '/media/yann/FILE/MI___Data/Prostate_data/UPenn_Prostate_Biopsy/50533.svs'
slide = openslide.open_slide(img_WSI)
[w, h] = slide.dimensions
x_max = int(math.floor(w/5000))
y_max = int(math.floor(h/5000))
for i in range(x_max):
y_start = 0
x_start = i*5000
for j in range(y_max):
y_start = j*5000
img = np.array(slide.read_region((y_start, x_start), 0, (5000, 5000))) # 这里将24000改成56000
Title = 'Pic_%d_%d_'%(x_start,y_start)
plt.imshow(img)
plt.title(Title)
# plt.show()
# plt.imsave('/home/yann/svs_read_patch/'+Title+'.jpg',img)
plt.pause(1)
plt.close()
end = time.time()
print end-start

参考链接

matplotlib(一)——pyplot使用简介
python 图像的显示关闭以及保存
python matplotlib 显示图像
matplotlib中ion()和ioff()的使用