之前程序使用的是PIL(Python image library),今天遇到了另一种图像处理包--skimage。

skimage即scikit-image,PIL和Pillow只提供最基础的数字图像处理,功能有限,OpenCV是一个c++库,只是提供了Python接口,更新速度非常慢,scikit-image是基于scipy的一款图像处理包,将图片作为numpy数组进行处理,正好与MATLAB一样。

子模块名称                 主要实现功能

  1. io                            读取、保存和显示图片或视频
  2. data                       提供一些测试图片和样本数据
  3. color                           颜色空间变换
  4. filters             图像增强、边缘检测、排序滤波器、自动阈值等
  5. draw               操作于numpy数组上的基本图形绘制,包括线条、矩形、圆和文本等
  6. transform          几何变换或其它变换,如旋转、拉伸和拉东变换等
  7. morphology          形态学操作,如开闭运算、骨架提取等
  8. exposure              图片强度调整,如亮度调整、直方图均衡等
  9. feature                        特征检测与提取等
  10. measure                  图像属性的测量,如相似性或等高线等
  11. segmentation                          图像分割
  12. restoration                           图像恢复
  13. util                                  通用函数

安装:pip install scikit-image

官网:https://scikit-image.org/

 from skimage import io as img
 import torch

 def process_image():
     """
     利用skimage处理数据
     :return:
     """
     x = img.imread('%s/%s'%(opt.input_dir,opt.input_name)) #类型为numpy
     if opt.nc_im == 3: # 如果是3通道
         x = x[:, :, :, None]
         x = x.transpose((3, 2, 0, 1)) / 255  # (图片个数,channel,height,width)
     else:
         x = color.rgb2gray(x)
         x = x[:, :, None, None]
         x = x.transpose(3, 2, 0, 1)
     x= torch.from_numpy(x)
     x = x.type(torch.cuda.FloatTensor) if not opt.not_cuda else x.type(torch.FloatTensor)
     out = (x-0.5)*2
     out = out.clamp(-1,1)
     return out

pytorch_13-图像处理之skimage的更多相关文章

  1. 从锅炉工到AI专家(4)

    手写数字识别问题 图像识别是深度学习众多主流应用之一,手写数字识别则是图像识别范畴简化版的入门学习经典案例.在TensorFlow的官方文档中,把手写数字识别"MNIST"案例称为 ...

  2. moviepy音视频剪辑:视频变换处理与内容相关的变换函数headblur、mask_and/or、mirror_x/y、rotate、painting、scroll介绍

    一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoC ...

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

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

  4. python skimage图像处理(一)

    python skimage图像处理(一) This blog is from: https://www.jianshu.com/p/f2e88197e81d 基于python脚本语言开发的数字图片处 ...

  5. python skimage图像处理(二)

    python skimage图像处理(二) This blog is from: https://www.jianshu.com/p/66e6261f0279  图像简单滤波 对图像进行滤波,可以有两 ...

  6. python skimage图像处理(三)

    python skimage图像处理(三) This blog is from: https://www.jianshu.com/p/7693222523c0  霍夫线变换 在图片处理中,霍夫变换主要 ...

  7. python数字图像处理(17):边缘与轮廓

    在前面的python数字图像处理(10):图像简单滤波 中,我们已经讲解了很多算子用来检测边缘,其中用得最多的canny算子边缘检测. 本篇我们讲解一些其它方法来检测轮廓. 1.查找轮廓(find_c ...

  8. python数字图像处理(1):环境安装与配置

    一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...

  9. SkiaSharp图像处理

    SkiaSharp图像处理 .NET Core使用skiasharp文字头像生成方案(基于docker发布)   一.问题背景 目前.NET Core下面针对于图像处理的库微软并没有集成,在.NET ...

随机推荐

  1. Appium(二):Node.js下载与安装、非GUI版本appium下载与安装、GUI版本appium下载与安装

    1. 下载并安装Node.JS 进入官网:https://nodejs.org/en/. 由于我们是新手嘛,所以肯定是越稳定越好啦,所以选择下载LTS版本. 进入文件下点击文件就进入安装界面了,点击n ...

  2. 20.never give up

  3. Python Poetry 学习和使用

    Poetry是啥? 是一个Python虚拟环境和依赖管理工具,另外它还提供了包管理功能,比如打包和发布.可以用来管理python库和python程序. 安装Poetry curl -sSL https ...

  4. PHP 实现精确统计在线人数功能

    有需要学习交流的友人请加入交流群的咱们一起,有问题一起交流,一起进步!前提是你是学技术的.感谢阅读! 点此加入该群​jq.qq.com PHP对session对象的封装的很好,根据HTTP协议,每个范 ...

  5. leetcode-字符串篇

    Implement strStr() /** * Implement strStr(). *  * Return the index of the first occurrence of needle ...

  6. 关于Excel做表小知识记录

    关于Excel做表小知识记录 最近使用Excel做了一系列的报表,觉得这是个很神奇的东西哈哈哈,以前我可是一想到Excel就开始头疼的人...  能用代码或者SQL语句解决的问题绝不会愿意留在Exce ...

  7. jQuery 源码解析(二十八) 样式操作模块 scrollLeft和scrollTop详解

    scrollLeft和scrollTop用于获取/设置滚动条的,如下: scrollLeft(val) ;读取或设置整个页面的水平滚动条距离 scrollTop(val) ;读取或设置整个页面的垂直滚 ...

  8. python __getattr__和 __getattribute__

    __getattr__ 这个魔法函数会在类中查找不到属性时调用 class User: def __init__(self): self.info = 1 def __getattr__(self, ...

  9. vue 客户端渲染和服务端渲染

    参考链接 https://www.cnblogs.com/tiedaweishao/p/6644267.html

  10. ES6-扩展运算符和rest运算符

    es6-扩展运算符和rest运算符 扩展运算符:不确定他的参数个数时使用运算扩展符 // 声明一个方法 但不确定他的参数个数时使用对象运算扩展符 function ananiha(...arg){ c ...