千家信息网

Python下的图像处理库,你选哪个?

发表于:2025-02-09 作者:千家信息网编辑
千家信息网最后更新 2025年02月09日,在进行数字图像处理时,我们经常需要对图像进行读取、保存、缩放、裁剪、旋转、颜色转换等基本操作。在使用python进行编程时,涉及到多个不同的图像处理库的选择,今天我们简单聊一聊这几个库:opencv、
千家信息网最后更新 2025年02月09日Python下的图像处理库,你选哪个?

在进行数字图像处理时,我们经常需要对图像进行读取、保存、缩放、裁剪、旋转、颜色转换等基本操作。在使用python进行编程时,涉及到多个不同的图像处理库的选择,今天我们简单聊一聊这几个库:opencv、scikit-image、scipy、pillow、matplotlib等等(不包括深度学习:tf.image等)

1. PIL(Python Imaging Library)

PIL(Python Imaging Library)是Python常用的图像处理库,而Pillow是PIL的一个友好Fork,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等。相比opencv更为轻巧。Image模块是在Python PIL图像处理中常见的模块,对图像进行基础操作的功能基本都包含于此模块内。如open、save、show等功能。

2. scipy.misc

python在科学计算领域有三个非常受欢迎库,numpy、SciPy、matplotlib。numpy是一个高性能的多维数组的计算库,SciPy是构建在numpy的基础之上的,它提供了许多的操作numpy的数组的函数。SciPy是一款方便、易于使用、专为科学和工程设计的python工具包,它包括了统计、优化、整合以及线性代数模块、傅里叶变换、信号和图像图例,常微分方差的求解等。

3. Opencv

OpenCV是一个开放源代码的计算机视觉应用平台,由英特尔公司下属研发中心俄罗斯团队发起该项目,开源BSD证书,OpenCV的目标是实现实时计算机视觉,,是一个跨平台的计算机视觉库。从开发之日起就得到了迅猛发展,获得了众多公司和业界大牛的鼎力支持与贡献,因为是BSD开源许可,因此可以免费应用在科研和商业应用领域。

OpenCV中已经包含如下应用领域功能:二维和三维特征工具箱、运动估算、人脸识别系统、姿势识别、人机交互、移动机器人、运动理解、对象鉴别、分割与识别、立体视觉、运动跟踪、增强现实(AR技术)。基于上述功能实现需要,OpenCV中还包括以下基于统计学机器学习库:Boosting算法、Decision Tree(决策树)学习、Gradient Boosting算法、EM算法(期望最大化)、KNN算法、朴素贝叶斯分类、人工神经网络、随机森林、支掌向量机。

编程语言:OpenCV中多数模块是基于C++实现,其中有少部分是基于C语言实现,当前OpenCV提供的SDK已经支持C++、Java、Python等语言应用开发。当前OpenCV本身新开发的算法和模块接口都是基于C++产生。OpenCV-Python使用Numpy,这是一个高度优化的数据库操作库,具有MATLAB风格的语法。所有OpenCV数组结构都转换为Numpy数组。这也使得与使用Numpy的其他库(如SciPy和Matplotlib)集成更容易。

注意:cv2默认为 BGR顺序,而其他软件(PIL、scopy.misc)一般使用RGB

4. matplotlib

Matplotlib是一个Python 2D绘图库,它可以在不同的平台上以各种硬拷贝格式和交互环境生成发布质量数据。Matplotlib可以用于Python脚本、Python和IPython shell、Jupyter notebook、web应用服务器和四个图形用户界面工具包。对于简单的绘图,pyplot模块提供了一个类似于matlab的接口,特别是与IPython结合使用时。对于power用户,您可以通过面向对象的界面或通过MATLAB用户熟悉的一组函数来完全控制线样式、字体属性、轴属性等.

5. skimagescikit-image是一组用于图像处理和计算机视觉的算法。"skimage"的主要包只提供了一些用于转换图像数据类型的实用程序;大多数功能程序存在其子包中。读取功能包含在io模块中。

使用建议

1. 这些库比较来看,我本人更喜欢使用opencv的库来进行图像处理的基本操作,数据格式为numpy,可以直接进行numpy的处理;

2. 进行折线图这类图绘制的时候,一般使用matplotlib库。

3. Opencv默认为 BGR顺序,而其他软件(PIL、scopy.misc)一般使用RGB。

so...你pick哪个?

另外,前天有伙伴留言说想学python基础,这两天总结了一些Python视频学习教程,评论回复:Python,即可领取哈!

图像 处理 图像处理 模块 功能 算法 应用 视觉 数据 数组 格式 计算机 学习 基础 工具 用户 语言 领域 C++ 支持 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络技术的实习过程 腾讯服务器一年排放多少二氧化碳 河北精益管理软件开发 r720服务器 配置 机械设计软件怎么布置服务器 arma3架设服务器 迷你世界资源如何上传服务器 河北计算机与网络安全学院 科脉V9的数据库在哪里 重庆软件开发创新服务 李晓峰计算机网络技术答案 ssh数据库的增删改查 网络安全必须坚持党的领导 免费软件开发合同模板范本1 罗布乐思手游怎么开服务器 金山区特定软件开发生产厂家 加强网络安全的建设 php数据库设计入门教程交流 绿园区有名的网络技术服务有哪些 客户端验证服务器证书 vc是可视化编程软件开发 拼团模块数据库设计思路 数据库技术发展的现状和发展 卡巴斯基越南网络安全态势 企业级软件开发流程八个步骤 通信达怎么下载数据库 网店宏诚科技软件开发 软件开发计划模板下载 日本云服务器排名 风险值数据库
0