python读取静态图片并显示的方法

参考网上的,自己在 Jupyter 上跑了一下。

1、matplotlib 方式读图,并对其进行操作

#导入需要的包
import matplotlib.pyplot as plt
import numpy as np
#读取lena图,并显示
lena = plt.imread('E:\pic\lenna.bmp')
plt.imshow(lena)
plt.axis('off')
plt.show()
lenna图
#显示lena图的相关信息,shape及size
print(lena.shape)
print(lena.size)

(512, 512, 3)
786432

#显示lena图的三个通道
lena_0 = lena[:,:,0]
plt.subplot(2,2,1)
plt.imshow(lena_0)
plt.axis('off')
lena_1 = lena[:,:,1]
plt.subplot(2,2,2)
plt.imshow(lena_1)
plt.axis('off')
lena_2 = lena[:,:,2]
plt.subplot(2,2,3)
plt.imshow(lena_2)
plt.axis('off')
plt.show()
三通道图
#显示0通道的灰度图
plt.imshow(lena_0,cmap='Greys_r')
plt.show()
单通道灰度图
#将RGB图转为灰度图
#自定义函数
def rgb2gray(rgb):
return np.dot(rgb[...,:3],[0.229,0.587,0.114])
gray_lena = rgb2gray(lena)
plt.imshow(gray_lena,cmap='Greys_r')
plt.show()
plt.axis('off')
灰度图
#对图像进行缩放,使用scipy
from scipy import misc
lena_newsize = misc.imresize(lena,0.5)
plt.imshow(lena_newsize)
plt.show()
缩小一半的图
#保存图像
#1.保存Matplotlib画出的图像
plt.imshow(lena_newsize)
plt.axis('off')
plt.savefig('lena_newsize.png')
#将array保存为图像
misc.imsave('lena_newsize_1.png',lena_newsize)
#直接保存array,保存为npy
np.save('gray_lena',gray_lena)
img = np.load('gray_lena.npy')
保存结果

"""方式二 OpenCV"""

from PIL import Image
#读取图片
I = Image.open('E:\pic\lenna.bmp')
I.save('lenna.png')
#转为array数组
im_array = np.array(I)
#转为灰度格式
L = I.convert('L')
L.show()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。