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