关于深度学习:10个图像处理的Python库

15次阅读

共计 2112 个字符,预计需要花费 6 分钟才能阅读完成。

在这篇文章中,咱们将整顿计算机视觉我的项目中罕用的 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

正文完
 0