它是由python语言编写的,
 
子模块名称                 主要实现功能
io 读取、保存和显示图片或视频
data 提供一些测试图片和样本数据
color 颜色空间变换
filters 图像增强、边缘检测、排序滤波器、自动阈值等
draw 操作于numpy数组上的基本图形绘制,包括线条、矩形、圆和文本等
transform 几何变换或其它变换,如旋转、拉伸和拉东变换等
morphology 形态学操作,如开闭运算、骨架提取等
exposure 图片强度调整,如亮度调整、直方图均衡等
feature 特征检测与提取等
measure 图像属性的测量,如相似性或等高线等
segmentation 图像分割
restoration 图像恢复
util 通用函数
Img读图片的大小是图片的(width, height);
而skimage的是(height,width, channel),
[这也是为什么caffe在单独测试时要在代码中设置:
transformer.set_transpose('data',(2,0,1)),
因为caffe可以处理的图片的数据格式是(channel,height,width),
所以要转换数据]
 
 
 图片的访问
  skimage读出来的图片可以直接img_file2[ ][ ]获得
图片读入程序中后,是以numpy数组存在的。因此对numpy数组的一切功能,对图片也适用。对数组元素的访问,实际上就是对图片像素点的访问。

彩色图片访问方式为:img[i,j,c]
i表示图片的行数,j表示图片的列数,c表示图片的通道数(RGB三通道分别对应0,1,2)。坐标是从左上角开始。 灰度图片访问方式为:gray[i,j]
切片: roi=img[80:180,100:200,:]

图片信息

如果我们想知道一些skimage图片信息

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) #显示总像素个数,也就是w*h
print(img.max()) #最大像素值
print(img.min()) #最小像素值
print(img.mean()) #像素平均值
print(img[0][0])#图像的像素值

使用了color模块的rgb2gray()函数,将彩色三通道图片转换成灰度图。转换结果为float64类型的数组,范围为[0,1]之间。

将彩色三通道图片转换成灰度图,最后变成unit8, float转换为unit8是有信息损失的。

常用的颜色空间有灰度空间、rgb空间、hsv空间和cmyk空间

如果一个文件夹里,我们既存放了一些jpg格式的图片,又存放了一些png格式的图片,现在想把它们全部读取出来,该怎么做呢?

import skimage.io as io
from skimage import data_dir
str='d:/pic/*.jpg:d:/pic/*.png'
coll = io.ImageCollection(str)
print(len(coll))

注意这个地方'd:/pic/.jpg:d:/pic/.png' ,是两个字符串合在一起的,第一个是'd:/pic/.jpg', 第二个是'd:/pic/.png' ,合在一起后,中间用冒号来隔开

这样就可以把d:/pic/文件夹下的jpg和png格式的图片都读取出来。如果还想读取存放在其它地方的图片,也可以一并加进去,只是中间同样用冒号来隔开。
io.ImageCollection()这个函数省略第二个参数,就是批量读取。如果我们不是想批量读取,而是其它批量操作,如批量转换为灰度图.

io.imshow(img)
这一行代码的实质是利用matplotlib包对图片进行绘制,绘制成功后,返回一个matplotlib类型的数据

作者:jiandanjinxin
链接:https://www.jianshu.com/p/f2e88197e81d
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

skimage的更多相关文章

  1. 『Python』skimage图像处理_旋转图像

    一段简短的实现图像旋转的代码,使用了skimage库,据说和PIL相比,skimage对numpy等科学计算库的支持更好,这里是为了完成师兄给的帮他修改程序的任务,如果以后有需求的话可能会对pytho ...

  2. skimage 安装和子模块

    平台:Windows 10 1.安装anaconda anaconda是python环境的集成安装软件,建议安装2.7版本的python 2.安装skimage 打开windows的命令提示符:  输 ...

  3. pip安装python包出错:Could not find a version that satisfies the requirement skimage (from versions: )

    今天用pip安装skimage时报错: 这是因为网络的问题,需要使用国内的镜像源来加速,比如豆瓣源 命令改为: pip install scikit-image -i http://pypi.doub ...

  4. 相似变换 SimilarityTransform 以及skimage源码

    http://scikit-image.org/docs/dev/api/skimage.transform.html#skimage.transform.SimilarityTransform ht ...

  5. caffe安装编译问题-ImportError: No module named skimage.io

    问题描述 >>> import caffe Traceback (most recent call last): File , in <module> File , in ...

  6. skimage exposure模块解读

    exposure模块包括: 直方图均衡化 gamma调整.sigmoid调整.log调整 判断图像是否对比度太低 exposure模块包括以下函数: histogram 统计颜色的直方图,基于nump ...

  7. skimage.io.imread vs caffe.io.load_image

    这两周在跑一个模型,我真的是被折腾的要崩溃了. 最后原因就是数据类型的问题,你说是不是应该管小黑屋啊. skimage.io.imread得到的是uint8的数据,而caffe.io.load_ima ...

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

    一 skiamge模块 skimage包的全称是scikit-image SciKit (toolkit for SciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能.它 ...

  9. 基本图形的绘制(基于skimage)

    图形包括线条.圆形.椭圆形.多边形等.在skimage包中,绘制图形用的是draw模块,不要和绘制图像搞混了. 一  线条 函数调用格式:     skimage.draw.line(r1,c1,r2 ...

随机推荐

  1. vue项目使用前端框架开发,实现滑动效果,若不刷新页面则无法达到预期效果的问题及解决方法

    滑动等效果的初始化时机很重要,在vue项目开发中,需到mounted()钩子函数 (当组件中的DOM结构被渲染好并放到页面中后,会执行这个钩子函数,此时即可初始化滑动效果的js代码). 若组件未挂载到 ...

  2. javascript进阶高手必备知识

    不想当将军的士兵不是好士兵,想当将军那就意味着要学习更多的技能,进阶前端高手必备知识点都有哪些? 你知道作用域.原型.继承.作用域链.闭包等概念吗? 从浏览器多进程到JavaScript单进程你又理解 ...

  3. 18-09-13 机器人和服务器之间的ip配置和脚本的重启

    问题9 服务器安装完毕后 怎么配置机器人客户端的配置ip

  4. Qt终结者之QML动画

    前言 使用QML差不多2年了,在使用过程中深深的感受到QML的强大与便捷,让我深陷其中,不能自拔.其中QML相比传统的界面最大的优势就是便捷的动画效果与炫酷的粒子效果,让QML做出来的界面能媲美WPF ...

  5. sdn交换机和普通交换机区别

    SDN交换机基本具有普通交换机的所有功能.SDN交换机特别的功能在于支持OpenFlow协议(有些只支持OpenFlow1.0,有些强点支持1.0和1.3).不过你要连接交换机再手动将所需的端口改成支 ...

  6. 删除Docker镜像

    删除镜像:1)先杀死镜像中所有容器   docker kill $(docker ps -a -q)2)删除镜像中所有容器:   docker rm $(docker ps -a -q)3)删除镜像: ...

  7. 集群web-ui

    一旦Hadoop集群启动并运行,可以通过web-ui进行集群查看,如下所述: 1.hdfs的集群端口号默认50070 NameNode  http://localhost1:50070(默认端口号po ...

  8. 神州数码DEIGRP路由协议配置

    实验要求:了解DEIGRP及其配置方法 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface l0 进入端口 ip addres ...

  9. [转载]JS中 map, filter, some, every, forEach, for in, for of 用法总结

    转载地址:http://codebay.cn/post/2110.html 1.map 有返回值,返回一个新的数组,每个元素为调用func的结果. let list = [1, 2, 3, 4, 5] ...

  10. 2PC(Two Phase Commitment Protocol)原理

    读TiDB原理部分,知道其分布式事务是参考的Google percolator.而percolator是一种2PC的优化. 分布式事务解决的是什么问题呢? 假设一个场景,一个电商网站,用户在购买商品时 ...