失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python 图像处理:图像的读取 显示与保存

python 图像处理:图像的读取 显示与保存

时间:2022-12-22 08:38:47

相关推荐

python 图像处理:图像的读取 显示与保存

skimage提供了io模块,顾名思义,这个模块是用来图片输入输出操作的。为了方便练习,也提供一个data模块,里面嵌套了一些示例图片,我们可以直接使用。

引入skimage模块可用:

from skimage import io

skimage包的全称是scikit-imageSciKit (toolkit forSciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能。它是由python语言编写的,由scipy 社区开发和维护。skimage包由许多的子模块组成,各个子模块提供不同的功能。主要子模块列表如下:

用到一些图片处理的操作函数时,需要导入对应的子模块,如果需要导入多个子模块,则用逗号隔开,如:

from skimage import io,data,color

一、从外部读取图片并显示

读取单张彩色rgb图片,使用skimage.io.imread(fname)函数,带一个参数,表示需要读取的文件路径。显示图片使用skimage.io.imshow(arr)函数,带一个参数,表示需要显示的arr数组(读取的图片以numpy数组形式计算)。

from skimage import ioimg=io.imread('d:/dog.jpg')io.imshow(img)

读取单张灰度图片,使用skimage.io.imread(fname,as_grey=True)函数,第一个参数为图片路径,第二个参数为as_grey, bool型值,默认为False

from skimage import ioimg=io.imread('d:/dog.jpg',as_grey=True)io.imshow(img)

二、程序自带图片

skimage程序自带了一些示例图片,如果我们不想从外部读取图片,就可以直接使用这些示例图片:

显示这些图片可用如下代码,不带任何参数

from skimage import io,dataimg=data.lena()io.imshow(img)

图片名对应的就是函数名,如camera图片对应的函数名为camera(). 这些示例图片存放在skimage的安装目录下面,路径名称为data_dir,我们可以将这个路径打印出来看看:

from skimage import data_dirprint(data_dir)

显示为:D:\Anaconda3\lib\site-packages\skimage\data

也就是说,下面两行读取图片的代码效果是一样的:

from skimage import data_dir,data,ioimg1=data.lena() #读取lean图片img2=io.imread(data_dir+'/lena.png') #读取lena图片

三、保存图片

使用io模块的imsave(fname,arr)函数来实现。第一个参数表示保存的路径和名称,第二个参数表示需要保存的数组变量。

from skimage import io,dataimg=data.chelsea()io.imshow(img)io.imsave('d:/cat.jpg',img)

保存图片的同时也起到了转换格式的作用。如果读取时图片格式为jpg图片,保存为png格式,则将图片从jpg图片转换为png图片并保存。

四、图片信息

如果我们想知道一些图片信息,可以在spyder编辑器的右上角显示:

也可以直接以程序方式打印输出

from skimage import io,dataimg=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 图像处理:图像的读取 显示与保存》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。