python数字图像处理skimage读取显示与保存图片
作者:denny402 发布时间:2023-07-28 17:33:00
引言
skimage提供了io模块,顾名思义,这个模块是用来图片输入输出操作的。为了方便练习,也提供一个data模块,里面嵌套了一些示例图片,我们可以直接使用。
引入skimage模块可用:
from skimage import io
一、从外部读取图片并显示
读取单张彩色rgb图片,使用skimage.io.imread(fname)函数,带一个参数,表示需要读取的文件路径。显示图片使用skimage.io.imshow(arr)函数,带一个参数,表示需要显示的arr数组(读取的图片以numpy数组形式计算)。
from skimage import io
img=io.imread('d:/dog.jpg')
io.imshow(img)
读取单张灰度图片,使用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)
二、程序自带图片
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)
图片名对应的就是函数名,如camera图片对应的函数名为camera(). 这些示例图片存放在skimage的安装目录下面,路径名称为data_dir,我们可以将这个路径打印出来看看:
from skimage import data_dir
print(data_dir)
显示为:D:\Anaconda3\lib\site-packages\skimage\data
也就是说,下面两行读取图片的代码效果是一样的:
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编辑器的右上角显示:
也可以直接以程序方式打印输出
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
来源:https://www.cnblogs.com/denny402/p/5121897.html


猜你喜欢
- 看到类似C:\>是在Windows提供的命令行模式,看到>>>是在Python交互式环境下。在命令行模式下,可以执行
- 导言在前面一些教程中,我们已经看到如何使用应用程序框架,ObjectDataSource,以及那些提供增、改、删功能的数据Web控件。在我们
- 初识条件判断(逻辑判断)逻辑判断与逻辑语句什么是逻辑判断? —> 对于一件事情的正确与否的判断,即 真假的判断;在
- strip_tags定义和用法strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。注释:该函数始终会剥离
- 如何在全局挂载对象和方法1.官方的说明Vue3.x已经不支持直接Vue.prototype.$http = () => {}这种方式来
- 需求:取文件1中的一行,和文件2中所有的数据进行比较,有相同的保存起来,否则删除。#!/usr/bin/perl#use strict;op
- 本文实例讲述了Python实现的井字棋(Tic Tac Toe)游戏。分享给大家供大家参考,具体如下:说明用python实现了井字棋,整个框
- Anaconda is a completely free Python distribution (including for comme
- 很多小伙伴都会有这样的问题,说一个ip地址十分钟内之内注册一次,用来防止用户来重复注册带来不必要的麻烦逻辑:取ip,在数据库找ip是否存在,
- 不管是在信贷领域还是支付领域,作为一个风控人员,我们都需要对部署的策略模型进行监控,信贷领域可能还需要对客户的逾期表现进行监控。这时,如果我
- 很多深度神经网络模型需要加载预训练过的Vgg参数,比如说:风格迁移、目标检测、图像标注等计算机视觉中常见的任务。那么到底如何加载Vgg模型呢
- 在使用Pycharm编写Django模板时,要用到一些特殊的格式,比如{{ … }},{% if %}等等,如果不设置Pycharm,只能一
- ExtJS可以用来开发RIA也即富客户端的AJAX应用,是一个用javascript写 的,主要用于创建前端用户界面,是一个与后台技术无关的
- 文章前言每周五上午十二点前需要将项目上各组开发分支合并软集仓库分支, 需要在十个项目上进行 merge程序员一般都是 很讨厌麻烦, 所以编写
- Vue-validator 是Vue的表单验证插件,供大家参考,具体内容如下Vue版本: 1.0.24 Vue-validator版本: 2
- (一)Git的安装和配置1.下载git,git的官网是:https://git-scm.com/1.1右下角点击安装,安装过程一直下一步。1
- 现在的高手真是越来越多,我刚发现一个版主兄竟然在不支持数据库的ISP免费主页上使用数据库,套用QQ聊天的一句话就是:Faint!明明人家IS
- 简介:在Windows下的网易邮箱大师客户端中,阅读邮件时,可以使用快捷键Delete删除邮件,然后自动跳到下一封,如果再按一次Delete
- 本文为大家分享了Ubuntu18.04安装mysql5.7.23的具体方法,供大家参考,具体内容如下参考文章:Ubuntu 18.04 安装
- 需要使用到的文件wxapp.py, read_file.py, setup.py#!/usr/bin/env python# -*- cod