Python下的图像处理库,你选哪个?
奥里给~
转载:https://blog.csdn.net/chen801090/article/details/105795068/
在进行数字图像处理时,我们经常需要对图像进行读取、保存、缩放、裁剪、旋转、颜色转换等基本操作。在使用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下安装PIL库遇到的问题及解决办法
关于python下安装PIL库遇到的问题及解决办法 关于python下安装PIL库遇到的问题及解决办法 :在下面这个网址下载pipllow(a replacement for PIL) www.lfd ...
- python PIL 图像处理库简介(一)
1. Introduction PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处 ...
- Python图像处理库Pillow入门
http://python.jobbole.com/84956/ Pillow是Python里的图像处理库(PIL:Python Image Library),提供了了广泛的文件格式支持,强大的图像处 ...
- python PIL图像处理库
1. Introduction PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了. ...
- Python图像处理库PIL中图像格式转换
o 在数字图像处理中,针对不同的图像格式有其特定的处理算法.所以,在做图像处理之前,我们需要考虑清楚自己要基于哪种格式的图像进行算法设计及其实现.本文基于这个需求,使用python中的图像处理库PIL ...
- Python图像处理库PIL中图像格式转换(一)
在数字图像处理中,针对不同的图像格式有其特定的处理算法. 所以,在做图像处理之前,我们须要考虑清楚自己要基于哪种格式的图像进行算法设计及事实上现.本文基于这个需求.使用python中的图像处理库PIL ...
- Python图像处理库——PIL
PIL全称Python Image Library,是python官方的图像处理库,包含各种图像处理模块.Pillow是PIL的一个派生分支,包含与PIL相同的功能,并且更灵活.python3.0之后 ...
- Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载
☞ ░ 前往老猿Python博文目录 ░ 一.简介 MoviePy是一个用于视频编辑的Python模块,可用于进行视频的基本操作(如剪切.拼接.标题插入).视频合成(也称非线性编辑).视频处理或创建高 ...
- ubuntu下安装opencv库+Python2.7环境安装及开发摄像头拍照应用
好久没有更新了,今天更一篇最近遇到的问题,及解决办法,后面博客得继续写起来 安装 #使用Python下的lib库直接进行安装 apt-get install python-opencv 测试 #使用如 ...
随机推荐
- 滴滴Ceph分布式存储系统优化之锁优化
桔妹导读:Ceph是国际知名的开源分布式存储系统,在工业界和学术界都有着重要的影响.Ceph的架构和算法设计发表在国际系统领域顶级会议OSDI.SOSP.SC等上.Ceph社区得到Red Hat.SU ...
- 多层v-for循环嵌套导致v-model双向绑定失败,页面不重新渲染
数据格式是数组包对象,对象里面再包数组,数组再包对象,如下: 外层for遍历出editInfo里面所有的属性,内层for遍历Options. 最终实现样子 两个问题: 1.点加减按钮的时候往optio ...
- Python 编程开发 实用经验和技巧
文章目录 一.小数保留指定位小数 1.%f 方法 2.format函数 3.round()函数 4.直接截断 二.判断变量的数据类型的两种方法 1.type(): 2.isinstance() 三.p ...
- 使用powershell完成定时get任务
最近公司网站需要在后台定时请求和更新数据,但PHP毕竟是一种后端语言,不能自动运行,所以整理了几个方法. 1.在前端定时请求页面. 2.使用批处理. 3.使用windows计划任务. 第一种方案必须要 ...
- SpringBoot系列之从入门到精通系列教程
对应SpringBoot系列博客专栏,例子代码,本博客不定时更新 Spring框架:作为JavaEE框架领域的一款重要的开源框架,在企业应用开发中有着很重要的作用,同时Spring框架及其子框架很多, ...
- 获取.properties配置文件属性值
public class TestProperties { /** * * @Title: printAllProperty * @Description: 输出所有配置信息 * @param pro ...
- myeclipse操作hdfs
myeclipse与hadoop集成我就不说了,还是简单说两句吧! 1.hadoop搭建完毕且可以正常访问(Linux搭建的集群环境 主机是windos) 2.在主机上将hadoop包解压 3.通过m ...
- Odoo10中calendar视图点击事件
有个需求,需要根据该条记录的状态字段来控制点击calendar时是否需要打开form视图,解决方案如下:重写了web_calendar的get_fc_init_options()方法中的eventCl ...
- 解Bug之路-串包Bug
解Bug之路-串包Bug 笔者很热衷于解决Bug,同时比较擅长(网络/协议)部分,所以经常被唤去解决一些网络IO方面的Bug.现在就挑一个案例出来,写出分析思路,以飨读者,希望读者在以后的工作中能够少 ...
- 自定义AQS独占模式下的同步器来实现独享锁
自定义AQS独占模式下的同步器来实现独享锁 /** * 自定义AQS独占模式下的同步器来实现独享锁 */ public class Mutex implements Lock, java.io.Ser ...