python matplotlib显示图片_python matplotlib 图像可视化

该博客介绍了如何使用matplotlib库在Python中显示和处理图像。内容包括:1) 显示图片;2) 显示图片的单个通道,并转换为灰度图;3) 图像的缩放;4) 使用scipy的imresize函数调整图像大小;5) 保存matplotlib绘制的图像和numpy数组。示例中涉及了imshow、rgb2gray、imresize等函数的使用方法。
摘要由CSDN通过智能技术生成

matplotlib标准模式

plt.figure(num=5, figsize=(8,5),)

#plt.figure(num='newimage', figsize=(8,5),)

plt.title('The image title', color='#0000FF')

plt.imshow(lena) # 显示图片

plt.axis('off') # 不显示坐标轴

plt.show()

# 1、显示图片

import matplotlib.pyplot as plt #plt 用于显示图片

import matplotlib.image as mpimg #mpimg 用于读取图片

import numpy as np

lena = mpimg.imread('lena.png') #读取和代码处于同一目录下的lena.png

# 此时 lena 就已经是一个 np.array 了,可以对它进行任意处理

lena.shape #(512, 512, 3)

plt.figure(num=1, figsize=(8,5),)

plt.title('The image title')

plt.imshow(lena) # 显示图片

plt.axis('off') # 不显示坐标轴

plt.show()

# 2、显示图片的第一个通道

lena_1 = lena[:,:,0]

plt.figure(num=2, figsize=(8,5),)

plt.imshow('lena_1')

plt.title('The image title')

plt.axis('off')

plt.show()

# 此时会发现显示的是热量图,不是我们预想的灰度图,可以添加 cmap 参数,有如下几种添加方法:

#方法一

plt.figure(num=1, figsize=(8,5),)

plt.imshow('lena_1', cmap='Greys_r')

plt.title('The image title')

plt.axis('off')

plt.show()

#方法二

plt.figure(num=2, figsize=(8,5),)

img = plt.imshow('lena_1')

img.set_cmap('gray') # 'hot' 是热量图

plt.title('The image title')

plt.axis('off')

plt.show()

#3、将 RGB 转为灰度图

def rgb2gray(rgb):

return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])

gray = rgb2gray(lena)

# 也可以用 plt.imshow(gray, cmap = plt.get_cmap('gray'))

plt.figure(num=3, figsize=(8,5),)

plt.imshow(gray, cmap='Greys_r')

plt.title('The image title')

plt.axis('off')

plt.show()

#4、对图像进行放缩

from scipy import misc

lena_new_sz = misc.imresize(lena, 0.5) # 第二个参数如果是整数,则为百分比,如果是tuple,则为输出图像的尺寸

plt.figure(num=4, figsize=(8,5),)

plt.imshow(lena_new_sz)

plt.title('The image title')

plt.axis('off')

plt.show()

附上imresize的用法

功能:改变图像的大小。

用法:

B = imresize(A,m)

B = imresize(A,m,method)

B = imresize(A,[mrows ncols],method)

B = imresize(...,method,n)

B = imresize(...,method,h)

imrersize函数使用由参数method指定的插值运算来改变图像的大小。

method的几种可选值:

'nearest'(默认值)最近邻插值

'bilinear'双线性插值

'bicubic'双三次插值

B = imresize(A,m)表示把图像A放大m倍

B = imresize(...,method,h)中的h可以是任意一个FIR滤波器(h通常由函数ftrans2、fwind1、fwind2、或fsamp2等生成的二维FIR滤波器)。

#5、保存 matplotlib 画出的图像

plt.savefig('lena_new_sz.png')

#5、将 array 保存为图像

from scipy import misc

misc.imsave('lena_new_sz.png', lena_new_sz)

#5、直接保存 array

#读取之后还是可以按照前面显示数组的方法对图像进行显示,这种方法完全不会对图像质量造成损失

np.save('lena_new_sz', lena_new_sz) # 会在保存的名字后面自动加上.npy

img = np.load('lena_new_sz.npy') # 读取前面保存的数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值