图像的读取,显示与保存(基于skimage模块)
一 skiamge模块
skimage包的全称是scikit-image SciKit (toolkit for SciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能。它是由python语言编写的,由scipy 社区开发和维护。skimage包由许多的子模块组成,各个子模块提供不同的功能。主要子模块列表如下:
| 子模块名称 | 主要实现功能 |
| io | 读取、保存和显示图片或视频 |
| data | 提供一些测试图片和样本数据 |
| color | 颜色空间变换 |
| filters | 图像增强、边缘检测、排序滤波器、自动阈值等 |
| draw | 操作于numpy数组上的基本图形绘制,包括线条、矩形、圆和文本等 |
| transform | 几何变换或其它变换,如旋转、拉伸和拉东变换等 |
| morphology | 形态学操作,如开闭运算、骨架提取等 |
| exposure | 图片强度调整,如亮度调整、直方图均衡等 |
| feature | 特征检测与提取等 |
| measure | 图像属性的测量,如相似性或等高线等 |
| segmentation | 图像分割 |
| restoration | 图像恢复 |
| util | 通用函数 |
用到一些图片处理的操作函数时,需要导入对应的子模块,如果需要导入多个子模块,则用逗号隔开,如:
from skimage import io,data,color
二 从外部读取图片并显示
2.1 彩色图片
- 读取单张彩色RGB图片,使用skimage.io.imread(fname)函数,带一个参数,表示需要读取的文件路径。
- 显示图片使用skimage.io.imshow(arr)函数,带一个参数,表示需要显示的arr数组(读取的图片以numpy数组形式计算)。
from skimage import io
img=io.imread('d:\\杨幂.jpg')
io.imshow(img)
结果如下图所示:

2.1 灰度图片
- 读取使用skimage.io.imread(fname,as_grey=True)函数,第一个参数为图片路径,第二个参数为as_grey, bool型值,默认为False。
- 显示图片使用skimage.io.imshow(arr)函数,带一个参数,表示需要显示的arr数组(读取的图片以numpy数组形式计算)。
from skimage import io
img = io.imread("d:/杨幂灰度图.png",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.astronaut()
io.imshow(img)
结果如下所示:

图片名对应的就是函数名,如camera图片对应的函数名为camera()。
四 保存图片
使用io模块的imsave(fname,arr)函数来实现。第一个参数表示保存的路径和名称,第二个参数表示需要保存的数组变量。
from skimage import io,data
img=data.chelsea()
io.imshow(img)
io.imsave('d:/cat.jpg',img)
结果如下所示:


五 图片的信息
如果我们想知道一些图片信息,可以通过Variable explorer读取:

当然我们也可以通过程序获得:
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()) #像素平均值
结果如下所示:
(300, 451, 3)
300
451
3
405900
231
0
115.305141661

参考:https://www.cnblogs.com/denny402/p/5121897.html
图像的读取,显示与保存(基于skimage模块)的更多相关文章
- OpenCV3编程入门笔记(1)图像载入、显示、保存、变换灰度图
图像载入.显示.保存函数: 1 图像载入函数:imread() Mat imread(const string& filename, int flags=1); const ...
- python读取,显示,保存mnist图片
python处理二进制 python的struct模块可以将整型(或者其它类型)转化为byte数组.看下面的代码. # coding: utf-8 from struct import * # 包装成 ...
- python数字图像处理(2):图像的读取、显示与保存
skimage提供了io模块,顾名思义,这个模块是用来图片输入输出操作的.为了方便练习,也提供一个data模块,里面嵌套了一些示例图片,我们可以直接使用. 引入skimage模块可用: from sk ...
- Opencv-Python:图像尺寸、图像的读取、显示、保存与复制
Opencv-Python:图像尺寸.图像的读取.显示.保存与复制 原创 2017年11月23日 21:30:49 4440 在使用opencv的方法时,首先必须导入opencv包.新的opencv导 ...
- OpenCV中图像的读取,显示与保存
图像的读取,显示与保存 相关函数:cv2.imread().cv2.imshow().cv2.imwrite() 1.读入图像: 用cv2.imread()函数来读取图像,cv2.imread(路 ...
- matlab数字图像处理-冈萨雷斯-读取,显示,保存图像
图像读取:imread(filename) 显示图像‘ 显示多幅图像 保存图像 b 计算压缩比
- 利用python进行简单的图像处理:包括打开,显示以及保存图像
利用python进行简单的图像处理:包括打开,显示以及保存图像 利用PIL处理 PIL(python image library) 是python用于图片处理的package.但目前这个package ...
- openCV—Python(2)—— 载入、显示和保存图像
一.函数简单介绍 1.imread-读取图像 函数原型:imread(filename, flags=None) filename:读取的图像路径名:比如:"H:\img\lena.jpg& ...
- Python下opencv使用笔记(一)(图像简单读取、显示与储存)
写在之前 从去年開始关注python这个软件,途中间间断断看与学过一些关于python的东西.感觉python确实是一个简单优美.easy上手的脚本编程语言,众多的第三方库使得python异常的强大. ...
随机推荐
- Struts2的使用
Struts2的核心类库 名称 说明 Struts2-core-2.3.4.jar 核心类库 Xwork-core-2.3.4.jar Xwork的核心类库 Ognl-3.0.5.jar Ognl表达 ...
- Hadoop- 集群启动详解
NameNode启动过程详解 第一次启动:HDFS格式化后,生成fsimage文件 hdf
- Python基础之元组操作
元组的常用操作包括但不限于以下操作: 元组的索引,计数等 这里将对列表的内置操作方法进行总结归纳,重点是以示例的方式进行展示. 使用type获取创建对象的类 type(tuple) 使用dir获取类的 ...
- cf 429B Working out(简单dp)
B. Working out time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- BEC listen and translation exercise 41
Its advantages are that it can be used for outside activities So my recommendation I'm afraid would ...
- linux 故障:df -h统计磁盘空间占用太多,但又du -h找不到大的文件
用lsof / | grep -i delete 从根目录定位打开的被删除的文件 如果定位到某文件占用空间很大 主要是因为我们在删除这个日志文件的时候是用rm -rf *.log这样的命令删除的,删除 ...
- ACM学习历程—Hihocoder 1233 Boxes(bfs)(2015北京网赛)
hihoCoder挑战赛12 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There is a strange storehouse in PKU. In this ...
- HDOJ2553(2N皇后问题)
N皇后问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- SpringBoot系列(1)
简介:用来简化新Spring应用的初始搭建以及开发过程:该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 特点:1. 创建独立的Spring应用程序2. 嵌入的Tomcat, ...
- linux日常管理-top动态查看负载
动态查看负载命令,具体哪个程序,哪个进程造成的系统负载. top 回车查看 3秒更新一次 第一行和uptime和w第一行显示的一样. CPU使用率,us sy 内存相关,Mem 一共多少,使用了多少, ...