10个图像处理的Python库

在这篇文章中,我们将整理计算机视觉项目中常用的Python库,如果你想进入计算机视觉领域,可以先了解下本文介绍的库,这会对你的工作很有帮助。

1、PIL/Pillow

Pillow是一个通用且用户友好的Python库,提供了丰富的函数集和对各种图像格式的支持,使其成为开发人员在其项目中处理图像的必要工具。

它支持打开、操作和保存许多不同的图像文件格式,用户还可以对图像执行基本操作,如裁剪、调整大小、旋转和更改图像颜色。

Pillow还可以让你在图像上添加文字和形状,提供一种简单的方式来注释你的视觉效果。

这个库也是torchvison使用的图像处理库,它功能强大并且使用很简单推荐使用。

2、OpenCV (Open Source Computer Vision Library)

OpenCV无疑是最流行的图像处理库之一。它最初由英特尔公司开发,已被广泛应用于计算机视觉领域。它支持无数与计算机视觉和机器学习相关的算法,这有助于理解视觉数据并做出有见地的决策。OpenCV还针对实时应用进行了高度优化,使其成为视频监控,自动驾驶汽车和先进机器人的绝佳选择。

OpenCV 功能最多,并且在处理速度方面要比Pillow快,所以在对于速度有要求的情况下推荐使用它。

另外一点就是OpenCV 读取的通道是BGR ,而其他的库都是RGB 的,所以如果混用的话需要转换,还记得这个代码吧:

 cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

3、Mahotas

Mahotas包括一组用于图像处理和计算机视觉的函数,这些函数主要是在高性能的c++中完成的,并且使用多线程,使其速度非常快。

它还包括各种形态操作,如侵蚀,扩张和连接成分分析。这些操作是图像二值化、去噪和形状分析等任务的基础。这些功能OpenCV 都有,但是Mahotas更专注于图像的图像处理,而并不像OpenCV那样什么都有,所以,Mahotas的API更简单、也更友好。并且学习起来也比OpenCV简单,但是速度方面却差不多。

4、Scikit-Image

Scikit-Image建立在Scikit-Learn机器学习库的基础上的扩展功能,包括更高级的图像处理能力。所以如果已经在使用Scikit进行ML,那么可以考虑使用这个库。

它提供了一套完整的图像处理算法。它支持图像分割、几何变换、色彩空间操作和过滤。

与许多其他库不同,Scikit-Image支持多维图像,这对于涉及视频或医学成像的任务是很有帮助的。Scikit-Image与其他Python科学库(如NumPy和SciPy)无缝集成。

5、TensorFlow Image

TensorFlow Image是TensorFlow的一个模块,它支持图像解码、编码、裁剪、调整大小和转换。还可以利用TensorFlow的GPU支持,为更大的数据集提供更快的图像处理。

也就是说如果你使用TF,那么可以使用它来作为训练Pipline的一部分。

6、PyTorch Vision

与TensorFlow Image类似,PyTorch Vision是PyTorch生态系统的一部分,主要用于与图像处理相关的机器学习任务。

7、SimpleCV

SimpleCV建立在OpenCV、PIL(Python Imaging Library)和NumPy之上,为用户提供了一组简单而强大的函数和工具,用于加载、处理和分析图像。

SimpleCV的设计目标是使计算机视觉技术对于初学者和非专业人士也能更加可靠和易于使用。它提供了一个简单的API,隐藏了底层的复杂性,使用户能够快速实现常见的计算机视觉任务。

但是目前官方维护也较少,所以这个项目很有可能会夭折。

8、Imageio

Imageio是一个用于读取和写入多种图像格式的Python库。它提供了一个简单而强大的API,使用户能够轻松地处理图像和视频数据。Imageio提供了一个通用的数据模型,使用户能够以多种方式存储图像数据。它可以使用NumPy数组、PIL图像对象或简单的Python字节字符串来表示图像数据。并且它提供了逐帧读取和写入视频文件的功能,这对于处理视频流或从视频中提取帧非常有用。

9、albumentations

Albumentations是一个用于图像增强和数据增强的Python库。它专注于在机器学习和计算机视觉任务中提供高效、灵活和易于使用的数据增强方法。

我一直把这个库当成torchvision的替代,因为它不仅有很多数据增强方法,还能够直接处理掩码bbox的增强。

10、timm

timm是一个PyTorch模型库,虽然可能和图像处理没有关系,但是它提供了广泛的预训练模型和计算机视觉模型的集合,这对我们来进行深度学习的时候是非常有帮助的。现在它已经是huggingface的子项目了,这意味着这个项目有了资金的支持,所以不会担心发展的问题。

总结

无论你是刚开始基本的图像处理还是探索高级机器学习模型,这些库都为广泛的图像处理任务提供了必要的工具。

https://avoid.overfit.cn/post/8912eb7ad4d04f359bbf802d62248bfa

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/1461.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

芯片等高科技制造业 如何实现安全的跨网数据交换?

芯片是信息产业的基础,一直以来占据全球半导体产品超过80%的销售额,在计算机、家用电器、数码电子、自动化、电气、通信、交通、医疗、航空航天等几乎所有的电子设备领域中都有使用。 所以,对于芯片这种高科技制造业来说,数据的安…

新项目搞完啦!!!

大家好,我是鱼皮。 经过了 7 场直播,总时长近 20 小时,我在 自己的编程导航 的第 5 个 全程直播开发 的项目 —— 智能 BI 项目,完结啦! 我在这里对该项目做一个简单的总结,希望让更多需要它的同学看到&am…

开发框架前后端分离的好处是什么

关于将前端和后端保持在一起或分开,存在广泛的意见分歧。唯一重要的是,这两个组件对于开发成熟的应用程序都是必需的。 考虑:紧密耦合的前端和后端 许多人认为后端和前端的分离是一个坏主意,这两个角色之间没有太大区别。 以下…

剑指 Offer 51: 数组中的逆序对

这道题归根结底就是一个归并问题,逆序对本质上就是比较大小,如果两边作为一个整体比较过那么就可以排序合并(因为这个过程每一步都计算了count的值,所以合并起来是可以的)。 下面的k应该是mid1(从中间的右…

【数据库】事务、事务并发问题、并发事务隔离级别、及sql演示

文章目录 一、事务1.1 事务简介 及 sql 操作1.2 事务的特性 二、事务并发问题三、事务隔离级别四、sql 演示4.1 脏读4.2 不可重复读4.3 幻读 五、演示代码 一、事务 1.1 事务简介 及 sql 操作 事务:数据库执行的一系列操作,这些操作要么全部执行&#x…

WPS数据清洗+R语言读取文件画频数分布直方图

R语言是一门好语言,但很多人在读取文件中数据时会遇到问题。比如我遇到的问题就是从文件中读取数据后,数据无法用于画图。 检索了N篇博文(抱歉我实在无法一一列举30篇博文)后,终于看到曙光,事实告诉我学任…

关于数据库SQL优化

简介 在项目上线初期,业务数据量相对较少,SQL的执行效率对程序运行效率的影响可能不太明显,因此开发和运维人员可能无法判断SQL对程序的运行效率有多大。但随着时间的积累,业务数据量的增多,SQL的执行效率对程序的运行…

Windows11添加用户自定义短语

比如要输入手机号码,直接输入sj就会弹出预先设定好的手机号,也可以预先设置好邮箱,身份证等等,这样就不用输入了 这个咋设置的有时候确实会忘记,所以就记下来了 步骤 第一步 打开设置 时间和语言>语言和区域 第二…

虹科分享 | 高考大数据可视化志愿填报分析-基于虹科Domo BI工具

高考是中国教育系统中一项极为重要的考试,它不仅是学生完成高中学业的重要标志,也是进入大学的门槛。每年高考都会吸引数百万学生参加,同时也吸引了各地高校和招生部门的关注。高考招生数据是教育研究和政策制定的重要依据,通过对…

【算法基础】快速排序(模板)

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和算法 ✈️专栏:【C/C】算法 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵 希望大佬指点一二 如果文章对你有…

Elasticsearch:倒数排序融合 - Reciprocal rank fusion

警告:此功能处于技术预览阶段,可能会在未来版本中更改或删除。 Elastic 将尽最大努力修复任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 约束。 倒数排序融合(RRF)是一种将具有不同相关性指标的多个结果集组…

java.sql.Time 字段时区问题 Mybatis 源码分析

java.sql.Time 字段时区问题 系列文章目录 第一章 初步分析 第二章 Mybatis 源码分析 第三章 Jackson 源码分析 意想不到的Time处理类 文章目录 java.sql.Time 字段时区问题 系列文章目录前言Mybatis源码阅读1. ResultSetImpl部分源码:2. SqlTimeValueFactory部分…