skimage提供了io模块,这个模块是用来操作图片输入输出的。
同时为了方便练习,skimage还提供了data模块,里面嵌套了一些示例图供我们直接使用。
导入io与data模块可用:
from skimage import io,data
一、读取并显示图片
io.imread(filename,as_grey=True):读取图片
参数
filename:图片路径
as_grey: bool类型值,缺省默认为False
as_grey=False 读取彩色图片(RGB图)
as_grey=True 读取灰度图片
io.imshow(arr):显示图片
参数
arr:需要显示的arr数组(imread()函数读取的图片为ndarray类型的数据)。
1. 使用外部图片
#导包
from skimage import io,data
#一、读取并显示图片
#1. 使用外部图片
#读取图片
img = io.imread('face.jpg')
#img = io.imread('face.jpg', as_grey=True)
#显示图片
io.imshow(img)
运行结果:
as_grey=False时
as_grey=True时
2. 使用skimage.data模块下自带的示例图片
如果我们不想从外部读取图片,就可以使用skimage.data模块下自带的一些示例图片,常见的示例图片如下:
astronaut |
宇航员图片 | coffee |
一杯咖啡图片 | lena |
lena美女图片 |
camera |
拿相机的人图片 | coins |
硬币图片 | moon |
月亮图片 |
checkerboard |
棋盘图片 | horse |
马图片 | page |
书页图片 |
chelsea |
小猫图片 | hubble_deep_field |
星空图片 | text |
文字图片 |
clock |
时钟图片 | immunohistochemistry |
结肠图片 |
|
显示这些图片可用如下代码,不带任何参数
#2. 使用skimage.data模块下自带的示例图片
#读取图片
img = data.chelsea()
#显示图片
io.imshow(img)
运行结果:
二、保存图片
io.imsave(filename, arr):保存图片
参数
filename:保存的图片路径
arr:需要保存的数组变量
#二、保存图片
#读取图片
img = io.imread('face.jpg')
#显示图片
io.imshow(img)
#保存图片
io.imsave('d:/newface.jpg', img)
运行结果:
三、图片信息
type(img):显示类型
img.shape:显示尺寸
img.shape[0]:图片宽度
img.shape[1]:图片高度
img.shape[2]:图片通道数,注意灰度图没有这个参数
img.size:显示总像素个数
img.max():最大像素值
img.min():最小像素值
img.mean():像素平均值
#三、图片信息
#读取图片
img = io.imread('face.jpg')
#img = io.imread('face.jpg', as_grey=True)
#获取图片信息
print ('img的类型:', type(img)) #numpy.ndarray类型
print ('img的尺寸:', img.shape) #显示尺寸
print ('img的宽度:', img.shape[0]) #图片宽度
print ('img的高度:', img.shape[1]) #图片高度
print ('img的通道数:', img.shape[2]) #图片通道数
print ('img的总像素个数:', img.size) #显示总像素个数
print ('img的最大像素值:', img.max()) #最大像素值
print ('img的最小像素值:', img.min()) #最小像素值
print ('img的像素平均值:', img.mean()) #像素平均值
#显示图片
io.imshow(img)
#保存图片
io.imsave('d:/newface.jpg', img)
运行结果:
从结果看出,使用io.imraed()函数读取图片,返回的数据类型是numpy.ndarray
总像素点个数 = 高度(height)*宽度(width)*通道个数(channel)
更多AI资源请关注公众号:大胡子的AI
欢迎各位AI爱好者加入群聊交流学习:882345565(内有大量免费资源哦!)
版权声明:本文为博主原创文章,未经博主允许不得转载。如要转载请与本人联系。