python中读取和查看图片的6种方法

本文比较了OpenCV、imageio、PIL、scipy和tensorflow在读取和显示彩色及灰度图片上的操作,特别指出不同库的默认通道顺序和显示技巧,并展示了使用skimage处理灰度图的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

file_name1='test_imgs/spect/1.png' # 这是彩色图片
file_name2='test_imgs/mri/1.png' # 这是灰度图片

在这里插入图片描述

1 OpenCV

注:用cv2读取图片默认通道顺序是B、G、R,而不是通常的RGB顺序,所以读进去的彩色图直接显示会出现变色情况,详情可以看:https://blog.csdn.net/weixin_45954454/article/details/114707888

import cv2
spect= cv2.imread(file_name1) # BGR
spect= spect[:, :, ::-1] # RGB
mri= cv2.imread(file_name2) # 灰度图
print(spect.shape) # (256, 256, 3)
print(mri.shape) # (256, 256, 3)   cv2读进来是三通道的图片
import matplotlib.pyplot as plt
plt.imshow(spect)
plt.show()

在这里插入图片描述

import matplotlib.pyplot as plt
fig=plt.figure()
f1 = fig.add_subplot(121)
f2 = fig.add_subplot(122)
f1.imshow(spect)
f2.imshow(mri)
plt.show()

在这里插入图片描述

2 imageio

import imageio 
spect = imageio.imread(file_name1) 
mri = imageio.imread(file_name2) 
print(spect.shape) # (256, 256, 3)
print(mri.shape) # (256, 256)
import matplotlib.pyplot as plt
fig=plt.figure()
f1 = fig.add_subplot(121)
f2 = fig.add_subplot(122)
f1.imshow(spect)
f2.imshow(mri,cmap='gray') # 注:单通道灰度图必须加上cmap='gray'才能正确显示
plt.show()

在这里插入图片描述

3 PIL

from PIL import Image
import numpy as np
spect= Image.open(file_name1) #  <PIL.PngImagePlugin.PngImageFile image mode=RGB size=256x256 at 0x1D9F15FFDC8>
spect.show()

在这里插入图片描述

4 scipy.misc

from scipy.misc import imread
spect = imread(file_name1)
mri = imread(file_name2)
import matplotlib.pyplot as plt
fig=plt.figure()
f1 = fig.add_subplot(121)
f2 = fig.add_subplot(122)
f1.imshow(spect)
f2.imshow(mri,cmap='gray') # 注:单通道灰度图必须加上cmap='gray'才能正确显示
plt.show()

在这里插入图片描述

5 tensorflow

from tensorflow.python.keras.preprocessing.image import load_img
spect = load_img(file_name1) #  <PIL.PngImagePlugin.PngImageFile image mode=RGB size=256x256 at 0x1D9EF188048>
spect.show()

在这里插入图片描述

6 skimage

from skimage import io
import matplotlib.pyplot as plt
mri = io.imread(file_name2)#读取数据
plt.imshow(mri,cmap='gray') # 注:单通道灰度图必须加上cmap='gray'才能正确显示
plt.show()

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

果子当夜宵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值