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 pltdef show_image(image):plt.figure(1)plt.axis("off") # off为不显示刻度,on为显示刻度,默认是onplt.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 pltdef show_two_images(image1, image2):fig, axes = plt.subplots(1, 2, figsize=(10, 10)) # 创建一个一行两列的画布,大小是figsizeplt.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 npdef 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显示图片,以后更多的用法再继续扩充。 >_<