Python skimage 图像读写与属性查看指南
本文详细介绍Python中skimage库的io模块用法,涵盖从外部文件读取RGB及灰度图像、使用内置示例图片、保存并转换格式,以及查看图像维度、像素值等属性信息的具体代码与参数说明。
引言
skimage库提供了io模块,专门用于处理图像的输入与输出操作。为了便于用户进行练习和测试,该库还内置了data模块,其中包含了一系列示例图片,用户可以直接调用这些资源进行开发。
在Python中引入skimage模块的标准方式如下:
from skimage import io一、从外部读取图片并显示
若要读取单张彩色RGB图像,需调用skimage.io.imread(fname)函数,该函数接收一个参数,即待读取图片的文件路径。显示图像则使用skimage.io.imshow(arr)函数,其参数为待显示的数组对象(读取后的图片以NumPy数组形式存储)。
from skimage import io
img=io.imread('d:/dog.jpg')
io.imshow(img)
对于单张灰度图像,使用skimage.io.imread(fname, as_grey=True)函数。其中第一个参数指定图片路径,第二个参数as_grey为布尔类型,默认值为False,设置为True时可将图像转换为灰度模式。
from skimage import io
img=io.imread('d:/dog.jpg',as_grey=True)
io.imshow(img)
二、程序自带图片
skimage库内置了多张示例图片,当用户无需从外部文件读取时,可直接使用这些内置资源:
astronaut | 宇航员图片 | coffee | 一杯咖啡图片 | lena | lena美女图片 |
camera | 拿相机的人图片 | coins | 硬币图片 | moon | 月亮图片 |
checkerboard | 棋盘图片 | horse | 马图片 | page | 书页图片 |
chelsea | 小猫图片 | hubble_deep_field | 星空图片 | text | 文字图片 |
clock | 时钟图片 | immunohistochemistry | 结肠图片 |
|
显示这些内置图片的代码无需额外参数,示例如下:
from skimage import io,data
img=data.lena()
io.imshow(img)
图片文件名与对应的函数名一致,例如camera图片对应camera()函数。这些示例图片存储在skimage的安装目录中,路径变量名为data_dir,可通过打印该变量查看具体路径:
from skimage import data_dir
print(data_dir)输出结果示例为:D:\Anaconda3\lib\site-packages\skimage\data
因此,以下两行读取图片的代码在效果上是等价的:
from skimage import data_dir,data,io
img1=data.lena() #读取lean图片
img2=io.imread(data_dir+'/lena.png') #读取lena图片三、保存图片
利用io模块中的imsave(fname, arr)函数实现图像保存。第一个参数指定保存的文件路径及文件名,第二个参数为需要保存的图像数组变量。
from skimage import io,data
img=data.chelsea()
io.imshow(img)
io.imsave('d:/cat.jpg',img)保存操作同时具备格式转换功能。例如,若读取的是JPG格式图像,而保存时指定为PNG格式,则系统会自动将图像从JPG转换为PNG格式并保存。
四、图片信息
若需查看图像的基本信息,可在Spyder编辑器的右上角窗口中直接查看:

此外,也可以通过程序代码直接打印输出相关信息:
from skimage import io,data
img=data.chelsea()
io.imshow(img)
print(type(img)) #显示类型
print(img.shape) #显示尺寸
print(img.shape[0]) #图片宽度
print(img.shape[1]) #图片高度
print(img.shape[2]) #图片通道数
print(img.size) #显示总像素个数
print(img.max()) #最大像素值
print(img.min()) #最小像素值
print(img.mean()) #像素平均值控制台输出结果如下:
<class 'numpy.ndarray'> (300, 451, 3) 300 451 3 405900 231 0 115.305141661

以上为Python数字图像处理中skimage库读取、显示及保存图片的详细内容,更多关于python skimage读取显示保存图片的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













