源 /  Python宝典  & 小象

这些Python库提供了一种简单直观的方法来转换图像并理解底层数据。

今天的世界充满了数据,图像是这些数据的重要组成部分。但是,在使用它们之前,必须对这些数字图像进行处理 - 分析和操作,以提高其质量或提取一些可以使用的信息。

常见的图像处理任务包括显示; 基本操作如裁剪,翻转,旋转等;;图像分割,分类和特征提取;图像恢复;图像识别。Python是这些图像处理任务的绝佳选择,因为它作为一种科学编程语言日益普及,并且在其生态系统中免费提供许多最先进的图像处理工具。

本文着眼于10个最常用的Python库,用于图像处理任务。这些库提供了一种简单直观的方法来转换图像并理解底层数据。

1. scikit-image

scikit-image是一个与NumPy数组一起使用的开源Python包。它实现了用于研究,教育和行业应用的算法和实用程序。它是一个相当简单直接的库,即使对那些不熟悉Python生态系统的人也是如此。代码质量高,经过同行评审,由一个活跃的志愿者社区编写。

资源

scikit-image文档丰富,有很多示例和实际使用方法。

用法

该包通过skimage导入,大多数功能可以在子模块中找到。

图像过滤:

使用match_template函数进行模板匹配:

你可以在gallery中找到更多的例子。

2. NumPy

NumPy是Python编程中的核心库之一,并为数组提供支持。图像本质上是包含数据点像素的标准NumPy数组。因此,通过使用基本的NumPy操作(如slicing,masking和fancy indexing),您可以修改图像的像素值。可以使用 skimage加载图像并使用 Matplotlib显示。

资源

NumPy的官方文档页面提供了完整的资源和文档列表。

用法

使用Numpy来mask图片:

3. SciPy

SciPy是Python的另一个核心科学模块(如NumPy),可用于基本的图像操作和处理任务。特别是,子模块 scipy.ndimage(在SciPy v1.1.0中)提供了在n维NumPy数组上运行的函数。该软件包目前包括线性和非线性滤波,二进制形态,B样条插值和对象测量等功能。

资源

有关scipy.ndimage包所提供的完整功能列表,请参阅文档。

用法

使用SciPy通过高斯滤波器进行模糊

4. PIL/Pillow

PIL(Python Imaging Library)是一个免费的Python编程语言库,它增加了对打开,操作和保存许多不同图像格式的支持。然而,它的发展停滞不前,其最后一版发布于2009年。幸运的是,Pillow是一个积极开发的PIL分支,它更易于安装,可在所有主流操作系统上运行,并支持Python 3。该库包含基本图像处理功能,包括点操作,使用一组内置卷积内核进行过滤以及颜色空间转换。

资源

文档包含安装说明以及涵盖库的每个模块的示例。

用法

使用ImageFilter增强Pillow中的图像:

5. OpenCV-Python

OpenCV(Open Source Computer Vision Library)是计算机视觉应用中使用最广泛的库之一。OpenCV-Python是OpenCV的Python API。因为后台由C / C ++编写的代码组成,OpenCV-Python速度很快快,但它也很容易编码和部署(由于前端的Python包装器)。这使其成为执行计算密集型计算机视觉程序的绝佳选择。

资源

通过OpenCV2-Python-Guide可以很容易上手OpenCV-Python

用法

使用OpenCV-Python中的 Image Blending using Pyramids创建一个“Orapple”:

6. SimpleCV

SimpleCV是另一个用于构建计算机视觉应用程序的开源框架。它提供访问几个高性能计算机视觉库,如OpenCV,的接口,但无需了解位深度,文件格式,色彩空间等。它的学习曲线远小于OpenCV,并且(如其标语所示),“它令计算机视觉变得简单。”支持SimpleCV的一些观点是:

即使是初学者也可以编写简单的机器视觉测试

摄像机,视频文件,图像和视频流都可以互操作

资源

很容易按照官方文档的指导进行操作,并有大量的示例和用例可供遵循。

用法

7. Mahotas

Mahotas是另一个用于Python的计算机视觉和图像处理库。它包含传统的图像处理功能,如过滤和形态操作,以及用于特征计算的更现代的计算机视觉功能,包括兴趣点检测和局部描述符。使用Python编写接口,适用于快速开发,但算法是用C ++实现的,并且针对速度进行了优化。Mahotas库运行快速,代码简约,依赖性小。阅读其官方文章以获得更多了解。

资源

文档包含安装说明,示例,甚至一些教程帮助您轻松开始使用Mahotas。

用法

Mahotas库依靠简单的代码来完成工作。例如,使用最少量的代码Finding Wally问题就可以很好地解决。

解决Finding Wally问题:

8. SimpleITK

ITK(Insight Segmentation and Registration Toolkit)是一个“开源,跨平台系统,为开发人员提供了一套用于图像分析的广泛软件工具。SimpleITK是一个基于ITK构建的简化层,旨在促进其在快速原型设计,交易以及解释语言方面的应用。”它也是一个图像分析工具包,具有大量组件,支持一般过滤操作,图像分割和配准。SimpleITK是用C ++编写的,但它可用包括Python在内的大量编程语言进行操作。

资源

有大量的Jupyter Notebook说明了SimpleITK在教育和研究活动中的应用。Notebooks使用Python和R编程语言演示如何使用SimpleITK进行交互式图像分析。

用法

使用SimpleITK和Python创建可视化的严格CT / MR配准过程:

9. pgmagick

pgmagick是基于Python的GraphicsMagick库的包装器。GraphicsMagick图像处理系统,有时也被称为图像处理的瑞士军刀。其强大而高效的工具和库集合支持在超过88种主要格式(包括DPX,GIF,JPEG,JPEG-2000,PNG,PDF,PNM和TIFF)上读取,写入和操作图像。

资源

pgmagick的GitHub respository有安装说明和要求。还有一个详细的用户指南。

用法

图像缩放:

边缘提取:

10. Pycairo

Pycairo是Cairo图形库的一组Python绑定。Cairo是一个用于绘制矢量图形的2D图形库。矢量图形很有趣,因为它们在调整大小或变换时不会失去清晰度。Pycairo可以从Python调用Cairo命令。

资源

Pycairo GitHub respository是一个很好的资源,包含有关安装和使用的详细说明。还有一个入门指南,有一个关于Pycairo的简短教程。

用法

用Pycairo绘制线条,基本形状和径向渐变:

结论

这些是Python中一些有用且免费提供的图像处理库。有些是众所周知的,有些可能对你来说是新的。尝试一下它们以了解更多关于它们的信息!

推荐阅读:

Python打牢基础,从12个语法开始!

互动主题:

以上 10 个小工具你用过哪一个,感觉怎么样?

扫码加入:(碎碎念、深深思)

10 个不可不知的 Python 图像处理工具 !相关推荐

  1. python图像切面numpy_十个Python图像处理工具,不可不知!

    原标题:十个Python图像处理工具,不可不知! 这些Python库提供了一种简单直观的方法来转换图像并理解底层数据. 今天的世界充满了数据,图像是这些数据的重要组成部分.但是,在使用它们之前,必须对 ...

  2. 干货整理!10个Python图像处理工具,入门必看,提效大法

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 在图像处理领域,一库在手,相当于天下已有.但是今天给大家推荐10个好用的库,快来看看有 ...

  3. 10个常用的Python图像处理工具,非常全了

    图像处理中的常见任务包括显示图像.基本操作(如裁剪.翻转.旋转等).图像分割.分类和特征提取.图像恢复和图像识别.由于Python语言具有很多先进的图像处理工具,而且越来越普及.所以Python成为图 ...

  4. 10个常用的Python图像处理工具,建议收藏!

    图像处理中的常见任务包括显示图像.基本操作(如裁剪.翻转.旋转等).图像分割.分类和特征提取.图像恢复和图像识别.由于Python语言具有很多先进的图像处理工具,而且越来越普及.所以Python成为图 ...

  5. 干货整理!10个Python图像处理工具,入门必看,提效大法 | 资源

    原作:Parul Pandey 铜灵 编译整理 量子位 出品 | 公众号 QbitAI 在图像处理领域,一库在手,相当于天下已有. 最近,有一位搞数据科学的小姐姐Parul Pandey,整理了一份实 ...

  6. 如何用python处理图片_推荐:10个Python图像处理工具

    概述了一些常用的Python库,它们提供了一种简单直观的图像转换方法. 介绍 在我们今天的世界中有很多的数据,而图像是这些数据中的重要组成部分.但是,要使用这些图像,需要对它们进行处理.因此,图像处理 ...

  7. 十个Python图像处理工具,不可不知!

    这些Python库提供了一种简单直观的方法来转换图像并理解底层数据. 今天的世界充满了数据,图像是这些数据的重要组成部分.但是,在使用它们之前,必须对这些数字图像进行处理 - 分析和操作,以提高其质量 ...

  8. 10个Python图像处理工具

    你好,我是悦创. 常见的图像处理任务包括显示. 裁剪.翻转.旋转.图像分割.特征提取等,Python 是这些图像处理任务的绝佳选择,日前,帕洛·潘迪(Parul Pandey )整理了 10 个最常用 ...

  9. 10个Python图像处理工具,非常全了!

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者:Parul Pandey 编译:ronghuaiyang 导 ...

最新文章

  1. 手动部署OpenStack环境(四:安装控制器必备软件)
  2. Android AudioPolicyService和AudioPolicyManager
  3. 在Foreda8上试安装Apchehttpd-2.4.6.tar.gz
  4. android 沉浸式状态栏的三种方法
  5. PAT甲级1004 Counting Leaves (30分):[C++题解]树、邻接表存储树、dfs遍历树
  6. php中(foreach)用法介绍
  7. 北斗导航 | 惯性导航中的IMU与GPS融合之无人机位姿估计(IMU+GPS:附Matlab源代码)
  8. ICCV 2019 | 微软开源无监督学习的医学图像配准方法:递归级联网络
  9. IPerf——网络测试工具介绍与源码解析(3)
  10. Python会赶超Java吗_Python 赶超 Java,JavaScript 稳坐第一 | GitHub
  11. PyTorch神经网络搭建入门
  12. linux服务器开启公网访问_如何在外网用SSH访问内网LINUX服务器?
  13. 程序员面试技巧必读篇(一套太极剑法传授给你)
  14. onvif 添加H265开发流程
  15. ocpc php,研发相关 · 百度 oCPC 开发者文档
  16. 用 Java 实现拦截器 Interceptor 的拦截功能
  17. 百度地图API 解析经纬度
  18. [code] 胡凡算法笔记 DAY004
  19. 什么是render函数?什么时候会用到render函数?
  20. 中国IPv6千万不要“起大早,赶晚集”

热门文章

  1. Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=
  2. Git .gitignore文件忽略(自己做过测试了)
  3. html5 jquery mobile,html5 jquery mobile
  4. 服务器输入字符在客户端显示,管理 Unicode 服务器与非 Unicode 客户端之间的数据转换...
  5. pandas concat_pandas合并几百个csv只需要一分钟?(含代码,拿去即可用)
  6. pycharm快速添加函数及参数注释_后端开发使用pycharm的技巧
  7. html js不触发_图文详解鼠标事件CSS:hover和JS:mouseover的区别
  8. html自动执行bat,html文件执行cmd指令
  9. 【Error】Provider com.sun.xml.stream.ZephyrParserFactory not found
  10. java akka_Akka系列(九):Akka分布式之Akka Remote