社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

收藏!10 个 Python 图像处理工具

进击的Coder • 1 年前 • 704 次点击  
这是「进击的Coder」的第 837 篇技术分享
来源: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 中一些有用且免费提供的图像处理库。有些是众所周知的,有些可能对你来说是新的。尝试一下它们以了解更多关于它们的信息!

End

欢迎大家加入【ChatGPT&AI 变现圈】,零门槛掌握 AI 神器!我们带你从小白到高手,解锁智能问答、自动化创作、技术变现的无限可能。与我们共同成长,开启 AI 新征程!立即行动,未来已来!(详情请戳:知识星球:ChatGPT&AI 变现圈,正式上线!

扫码加入:





点个在看你最好看

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/155998
 
704 次点击