【Python】matplotlib.pyplot显示图片
import matplotlib.pyplot as pltplt.axis("off") # 不显示刻度1.figure语法及操作(1)figure语法说明figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)num:图像编号或名称,数字为编号 ,字符串为名称figsize:指
·
1.figure语法及操作
(1)figure语法说明
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和高,单位为英寸;
dpi:参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 1英寸等于2.5cm,A4纸是 21*30cm的纸张
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框
例子:
import cv2
import matplotlit.pyplot as plt
def show_image(image):
plt.figure(1)
plt.axis("off") # off为不显示刻度,on为显示刻度,默认是on
plt.imshow(image)
plt.show()
image = cv2.imread("文件路径")
show_image(image) # image 类型是numpy.ndarray
(2)plt.subplots()函数返回一个figure图像和子图ax的array列表。
import cv2
import matplotlib.pyplot as plt
def show_two_images(image1, image2):
fig, axes = plt.subplots(1, 2, figsize=(10, 10)) # 创建一个一行两列的画布,大小是figsize
plt.axis("off")
ax1 = axes[0] # 第一个子图
ax2 = axes[1] # 第二个子图
ax1.set_title("image")
ax1.imshow(image1)
ax1.set_title("ground truth")
ax2.imshow(image2)
plt.show()
image1 = cv2.imread("../img/02.jpg")
image2 = cv2.imread("../img/03.jpg")
show_two_images(image1, image2)
(3)使用plt.subplot()
import h5py
import cv2
import matplotlib.pyplot as plt
import numpy as np
def show(image1, image2, image3):
plt.figure(figsize=(10, 5))
plt.suptitle("") # 设置整个图片的标题
plt.subplot(1, 3, 1)
plt.title('image1') # 设置小标题
plt.axis('off')
plt.imshow(image1)
plt.subplot(1, 3, 2)
plt.title('image2') # 设置小标题
plt.axis('off')
plt.imshow(image2)
plt.subplot(1, 3, 3)
plt.title('image3') # 设置小标题
plt.axis('off')
plt.imshow(image3)
plt.show()
h5f = h5py.File(r'/root/data/lak/hhh/data/2018LA_Seg_Training_Set/45C45I6IXAFGNRO067W9/mri_norm2.h5', 'r')
image_index = 100
image = h5f['image'][image_index]
label = h5f['label'][image_index]
# 读取其他的图像可以用下边替换掉上边的
# image = cv2.imread('path')
grad_x, grad_y = np.gradient(image)
grad_x, grad_y = np.abs(grad_x), np.abs(grad_y)
grad = np.sqrt(grad_x ** 2 + grad_y ** 2)
grad_max = np.max(grad)
if grad_max != 0:
grad = grad / grad_max
# print(grad_max)
show(image, label, grad)
在一行中显示任意多个图片,参数任意多个:
def show_image(*args):
plt.figure(figsize=(10, 5))
for idx, image in (args):
plt.subplot(1, len(args), idx + 1)
plt.axis("off")
plt.imshow(image, cmap="gray")
plt.show()
show_image(image1, image2, image3, ...)
记录matplotlib.pyplot显示图片,以后更多的用法再继续扩充。 >_<
更多推荐
已为社区贡献3条内容
所有评论(0)