当前位置: 代码迷 >> 综合 >> 【Python】matplotlib.pyplot显示图片
  详细解决方案

【Python】matplotlib.pyplot显示图片

热度:99   发布时间:2023-11-25 13:54:42.0

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显示图片,以后更多的用法再继续扩充。 >_<

  相关解决方案