python中在计算机视觉中的库及基础用法
基于python脚本语开发的数字图像处理包有很多,常见的比如PIL、Pillow、opencv、scikit-image等。PIL和pillow只提供了基础的数字图像处理,功能有限;OpenCV实际上是一个C++库,提供了python接口,更新较慢;scikit-image是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理。
一、SKimage
skimage包的全称是scikit-image SciKit (toolkit for SciPy) ,它对scipy.ndimage进行了扩展,提供了更多的图片处理功能。它是由python语言编写的,由scipy 社区开发和维护。skimage包由许多的子模块组成,各个子模块提供不同的功能。主要子模块如下所示:
io | 读取、保存和显示图片或视频 |
data | 提供测试图片或样本数据 |
color | 颜色空间转换 |
filters | 图像增强、边缘检测、排序滤波器、自动阈值 |
draw | 操作于numpy数组上的基本图形绘制,包括线条、矩形、圆和文本等 |
transform | 几何变换或其他变换,如旋转、拉伸等 |
morphology | 形态学操作,如开闭运算,骨架提取等 |
exposure | 图片强度调整,如亮度调整,直方图均衡等 |
feature | 特征提取,检测,角点等特征 |
measure | 图像属性的测量,如相似性或等高线等 |
segmentation | 图像分割 |
restoration | 图像恢复 |
util | 通用函数 |
使用方法:https://www.jianshu.com/p/f2e88197e81d
二、PIL(Python Imaging Library )图像处理类库
PIL提供了通用的图像处理功能,以及大量有用的基本图像操作,比如图像缩放、裁剪、旋转、颜色转换等。常见的操作有图像格式转换,创建缩略图、图像区域的复制粘贴。
三、Matplotlib
Matplotlib具有强大的绘图功能。能够绘制图表,点、线,图像轮廓,直方图等,进行交互式标注。
四、Numpy
Numpy是有名的科学计算工具包。
https://www.jianshu.com/p/f2e88197e81d
五、opencv(BGR)
opencv是一个C++库,用于(实时)处理计算机视觉问题。