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

摘要:
它是用python编写的,由scipy社区开发和维护。第一个参数表示保存的路径和名称,第二个参数表示要保存的数组变量。fromskimageimportio,dataimg=data.chelsea()io.imshowio。在imsave保存图片的同时,它还可以转换格式。如果阅读时图像格式为jpg,并且保存为png格式,请将图像从jpg转换为png并保存。

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

引入skimage模块可用:

from skimage import io

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

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

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

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

python 图像处理:图像的读取、显示与保存第1张

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

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

python 图像处理:图像的读取、显示与保存第2张

二、程序自带图片

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)

python 图像处理:图像的读取、显示与保存第3张

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

from skimage import data_dir
print(data_dir)

显示为: D:Anaconda3libsite-packagesskimagedata

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

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编辑器的右上角显示:

python 图像处理:图像的读取、显示与保存第4张

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

复制代码
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 图像处理:图像的读取、显示与保存第7张

 

  • 相关阅读:
    这一次,彻底弄懂 JavaScript 执行机制
    flex布局实例demo全解
    Sass和less的区别是什么?用哪个好
    开放服务器特定端口
    使用jacob报错:com.jacob.com.ComFailException: Can't get object clsid from progid
    计算机网络基础
    前端分页3
    window 10 Microsoft Edge 无法使用开发者模式【F12】
    docker下载安装
    git常用笔记
  • 原文地址:https://www.cnblogs.com/presleyren/p/14708376.html
  • 免责声明:文章转载自《python 图像处理:图像的读取、显示与保存》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

    上篇Debian 环境安装新版 nginxTP5中Session和Cookie的基础用法下篇

    宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

    相关文章

    孤荷凌寒自学python第十七天初识Python的函数

    孤荷凌寒自学python第十七天初识Python的函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 函数是能够完成指定运算并返回运算结果的代码块。是结构化编程重要的结构。 我首先发现python的函数定义非常简洁,没有定义的修饰词,如多数语言中用到的函数定义的修饰词private public 等在python中是不存在!! 一、python函...

    python 类型注解

    函数定义的弊端 python 是动态语言,变量随时可以被赋值,且能赋值为不同类型 python 不是静态编译型语言,变量类型是在运行器决定的 动态语言很灵活,但是这种特性也是弊端 def add(x,y): return x+y print(add(4,5)) print(add('hello','world')) print(add(...

    Python基础-多线程与多进程

    一,线程与进程之间的关系:(从知乎上看到的) 一个必须知道的事实:执行一段程序代码,实现一个功能的过程介绍 ,当得到CPU的时候,相关的资源必须也已经就位,就是显卡啊,GPS啊什么的必须就位,然后CPU开始执行。这里除了CPU以外所有的就构成了这个程序的执行环境,也就是我们所定义的程序上下文。当这个程序执行完了,或者分配给他的CPU执行时间用完了,那它就...

    python操作Redis方法速记

    redis有5种数据结构,分别如下:5种数据结构python语言对5种数据结构的增删改查 全局函数 redis 连接 import redis pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True) r = redis.Redis(connectio...

    python 简单图像识别--验证码

    python  简单图像识别--验证码 记录下,准备工作安装过程很是麻烦。 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便(https://files.cnblogs.com/files/Oran9e/PILwin64.zip)(https://files.cnblogs.com/...

    python中的str()与eval函数

    author:headsen chen date:2018-04-09 10:48:22 eval函数是把str转化成list、dict、tuple str函数把list,dict,tuple转为为字符串 ----------------------------------------------------------------# 字符串转换成列表a...