前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 数字图像处理-从 scikit-image 库开始学习

Python 数字图像处理-从 scikit-image 库开始学习

作者头像
嵌入式视觉
发布2022-09-05 13:18:41
9890
发布2022-09-05 13:18:41
举报
文章被收录于专栏:嵌入式视觉

Contents

常用 Python 数字处理图像库

图像处理中的常见任务包括显示图像,基本操作如裁剪、翻转、旋转等,图像分割,分类和特征提取,图像恢复和图像识别。常用的基于 python 脚本语言开发的数字图片处理库有以下几种,比如 PIL,Pillow, opencv, scikit-image 等。(PIL 是针对 python2, pillow 是针对 python3,两者功能一样。)

Pillow 只提供最基础的数字图像处理,功能有限;opencv 实际上是一个 c++ 库,只是提供了 python 接口,更新速度非常慢。scikit-image 是基于 scipy 的一款图像处理库,它将图片表示为数组(NumPy arrays)进行处理,正好与matlab一样。Image 读出来的是 PIL 的类型。而skimage.io读出来的数据是numpy格式的,这方便我们与 TensorFlow 框架对接。因此,我最开始选择 scikit-image 进行数字图像处理。

注意本文只是简单的介绍了下 skimage 库的基本用法,包括子模块 data 和 io 加载图像并获取图像信息,更多信息请参考官网教程。

基本使用

模块导入

scikit-image 是一个将图像作为 numpy array 格式处理的 Python 包。该包被导入为 skimage。(为了方便,后续内容我只写简称 skimage)

代码语言:javascript
复制
>>> import skimage

子模块和函数列表

skimage包由许多的子模块组成,各个子模块提供不同的功能。主要子模块列表如下,这个网页提供了全部的子模块和函数列表。

skimage子模块列表

基本操作

在 skimage 子模块中,我们可以找到绝大多数数字图像处理的功能。对于读取外部图片并显示,skimage 提供了 io 子模块,顾名思义,这个模块是用来图片输入输出操作的。为了方便练习,skimage 提供 data 子模块,里面嵌套了一些示例图片,我们可以直接使用。

下面是 data 子模块的用法:

代码语言:javascript
复制
>>> from skimage import data    #导入data子模块
>>>  camera = data.camera()     #create camera image,return (512, 512) uint8 ndarray

一要记住,在 scikit-image 中,图像表示为 NumPy 阵列,例如用于灰度图像的为2-D(2维)矩阵。代码示例:

代码语言:javascript
复制
>> import skimage
>> from skimage import data  #create camera image,return (300, 451, 3) uint8 ndarray
>> camera = data.camera()
>> print(type(camera))       #显示图像的数据类型
>>> print(camera.shape)      #显示图像的尺寸

代码解释:skimage.data 子模块提供了一组返回示例图像的函数,可用于快速操作图像文件。也可以使用 skimage.io.imread()从外部文件中读取图像文件,并作为 Numpy数组加载。

代码语言:javascript
复制
>>> import os
>>> filename = os.path.join(skimage.data_dir, 'moon.png')
>>> from skimage import io
>>> moon = io.imread(filename)
>>> print('The image moon data\n',moon)

参考链接

http://scikit-image.org/docs/stable/user_guide/getting_started.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常用 Python 数字处理图像库
  • 基本使用
    • 模块导入
      • 子模块和函数列表
        • 基本操作
        • 参考链接
        相关产品与服务
        图片处理
        图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档