图像的读取,显示与保存(基于skimage模块)

2023-10-26

一 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

转载于:https://www.cnblogs.com/Terrypython/p/9941553.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像的读取,显示与保存(基于skimage模块) 的相关文章

随机推荐

  • Python小知识点总结

    1 super 在类的继承中 如果重定义某个方法 该方法会覆盖父类的同名方法 但有时 我们希望能同时实现父类的功能 这时 我们就需要调用父类的方法了 可通过使用 super 来实现 class Animal object def init
  • ipv6 socket bind 失败 - accept_dad

    file proc sys net ipv6 conf interface accept dad variable net ipv6 conf interface accept dad Official reference Whether
  • 阿里一面:讲一讲 Spring、SpringMVC、SpringBoot、SpringCloud 之间的关系?

    大家好 我是Tom哥 搞后端开发的同学 对 Spring 家族一定不陌生 Spring 全家桶了为了解决不同场景的问题 逐渐演化出多套生态环框 如 Spring SpringMVC SpringBoot SpringCloud 它们之间的关
  • 区块链原理与应用(一)

    1 什么是区块链 mermaid svg z62l3eavYilXMK3m label font family trebuchet ms verdana arial font family var mermaid font family f
  • 【ML】2023 年面向初学者的十大机器学习项目

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • elementUI 的 table 表格改变数据不更新问题

    预期效果 点击输入框旁边的图标 输入框变为可输入状态 这里控制输入的 editable 字段不是 data 原有的属性 也不是 data 赋值时就存在的字段 问题原因 在 Vue 实例创建时 以及 data 赋值时 editable 并未声
  • 随机从数组或集合中抽取一个值或 从list集合中随机抽几个值 或算权重

    直接上代码 package cn itcast jk util import java util Arrays import java util HashSet import java util Map import java util S
  • Xilinx-FPGA关于BUFFER(时钟/普通IO信号)的使用总结

    目录 前言 一 时钟BUFFER使用总结 二 普通IO输出时钟信号时的推荐方法 使用ODDR 前言 Xilinx FPGA开发过程中 关于时钟信号和普通IO信号引入FPGA内部需要遵循一定的使用方法 现在自己一年多使用过的内容做一个总结 也
  • springmvc request与response获取

    request与response是Tomcat服务器在收到客户端请求后自己生成的 无需我们自己创建 但是在使用的时候可以有以下三种方式去获取 1 Controller直接使用 方法上直接使用 通过DispatcherServlet将参数传到
  • linux 查看当前系统时间,并实时刷新

    使用watch命令 周期性的执行一个命令 并全屏显示 watch n 1 date即可 每1秒刷新date命令 格式 watch option command watch n 1 date n interval 表示每n秒执行date n最
  • nodejs中使用数据库逆向映射字段

    安装依赖 在搭建项目时 一般都是先创建数据库 在使用服务去访问数据 但是由于数据库的映射非常麻烦 导致需要书写大量的映射文件 对于nodejs 这里提出一个逆向工程 本文使用的是mysql数据库 首先安装 npm init 先初始化项目 n
  • java实现具有修饰的完美圣诞树

    A 有咋样的实力可以写出这个代码 B 会for循环就好 A 只要会for就好 B 还有一点点逻辑能力和算法 package 海绵hong import java util Scanner public class text9 public
  • Linux下errno所代表的含义

    errno记录系统的最后一次错误代码 是一个int型 在errno h中定义 以下程序用于输出errno所代表的含义 0 133有意义 其余的属于未定义 include
  • 向ftp上传文件失败的可能原因

    1 文件编码问题引起 现象 上传含有中文符号的文件会上传失败 解决方法 将文件名中的中文符号修改为英文符号即可上传成功 如果上传的文件名中没有中文符号也失败 可以试试将文件名修改为短一点的 如 11 待上传成功后再修改文件名称 2 ftp服
  • 油猴脚本编写教程

    油猴脚本 Tampermonkey 是一个非常流行的浏览器扩展 它可以运行由广大社区编写的扩展脚本 来实现各式各样的功能 常见的去广告 修改样式文件 甚至是下载视频 今天我们就来看看如何编写自己的油猴脚本 当然为了运行油猴脚本 你应该在浏览
  • 在web项目启动时,执行某个方法

    在web项目启动时 执行某个方法 在web项目中有很多时候需要在项目启动时就执行一些方法 而且只需要执行一次 比如 加载解析自定义的配置文件 初始化数据库信息等等 在项目启动时就直接执行一些方法 可以减少很多繁琐的操作 在工作中遇到了项目初
  • 【计算机网络】物理层:数据通信系统模型

    一个数据通信系统可划分三大部分 发送方 源系统 发送端 传输系统 传输网络 接受方 接受端 目的系统 发送方包括 源点 源点设备产生要传输的数据 发送器 源点生成的数字比特流要通过发送器编码后才能够在传输系统中传输 典型的发送器是调制器 接
  • 文档在线预览解决方案——openoffice转换

    文档在线预览是一个复杂功能 文档格式的繁复更加增加了难度 虽然office给出了在线预览功能 https products office com en us office online view office documents onlin
  • C++基础——运算符重载函数讲解与练习

    目录 前言 一 运算符重载 1 定义 2 函数名字为 3 函数原型 练习 对比两个日期类对象是否相等 函数重载 练习 对比两个日期类对象 gt gt 的运算符重载函数 对于小于 小于等于 不等于的函数重载如下 练习 日期类对象 天数的重载函
  • 图像的读取,显示与保存(基于skimage模块)

    一 skiamge模块 skimage包的全称是scikit image SciKit toolkit for SciPy 它对scipy ndimage进行了扩展 提供了更多的图片处理功能 它是由python语言编写的 由scipy 社区