计算机视觉:1.1、基础工具库介绍

为了探索计算机视觉的世界,我们首先需要安装包(package)和库(libaray)。对于首次接触到CV世界的人来说,安装这些包的过程可能会显得有些枯燥乏味。

接下来向大家介绍一下用到的包和其大概的作用,我觉得这对于我们这些新手来说是非常有必要的。

  • NumPy

image-20211003142016604

官网:numpy.org

NumPy is the fundamental package for scientific computing in Python. It is a Python library that provides a multidimensional array object, various derived objects (such as masked arrays and matrices), and an assortment of routines for fast operations on arrays, including mathematical, logical, shape manipulation, sorting, selecting, I/O, discrete Fourier transforms, basic linear algebra, basic statistical operations, random simulation and much more.

根据官方给出的说明,可以看出Numpy是一个Python语言中用于科学计算的基础包,它是一个提供了多维数组对象,以及多种派生对象的Python库,也提供了多套对数组的快速操作,包括数学、逻辑、形状操作、分类、选择、输入输出、离散傅立叶变换、基础线性代数、基础统计学操作、模拟随机以及更多。

NumPy通过数组来表示图像,并且通过对数组中的元素操作来实现对图片的各种操作。

使用NumPy数组表示图像的好处:

  1. 计算高效,节约资源。
  2. 许多其他的图像处理和机器学习的库也使用NumPy来表示数组,有利于图像的表示方法的统一化。
  3. NumPy提供的许多内置的数学函数,可以让我们方便快捷地对图片进行定量分析。

功能和NumPy大致相同,对NumPy进行科学计算等方面的补充和延伸提供支持。

简单来说,matplotlib是一个绘图库,无论是我们实验的可视化还是科研论文的研究结果都需要通过绘图这种直观的方式来呈现结果,例如直方图、灰度图或者更加复杂的图形等。

而matplotlib就是一个提供了诸多绘图工具的工具箱。

如果说NUmPy的主要目标是大型、高效、多维度的数组表示,那么OpenCV的目标就是对图像的实时处理。openCV从1999年就出现了,但从2009年的2.0realease版本才开始支持NumPy。库本身使用C/C++编写而成,但2015年发布的3.0release才开始支持Python3.

Mahotas is a computer vision and image processing library for Python.

It includes many algorithms implemented in C++ for speed while operating in numpy arrays and with a very clean Python interface.

Mahotas currently has over 100 functions for image processing and computer vision and it keeps growing. Some examples of mahotas functionality:

和OpenCV一样,依赖于NumPy数组表示,OpenCV中可以找到许多Mahotas中的函数实现,但在某些情况下,Mahotas的接口更容易使用,我们用Mahotas来补充完善OpenCv。

Scikit-learn并非一个图像处理或计算机视觉库,而是一个机器学习库。也就是说,没有某些机器学习的方法,我们是无法构建一些高级的计算机视觉技术的,这些机器学习方法包括聚类、向量量化、分类模型等。Scikit-learn也包括少数的特征提取函数。

Scikit-image库中会更新很多紧跟时代的计算机视觉的算法。在这里可以找到学术论文中的算法。

  • imutils

GitHub:https://github.com/PyImageSearch/imutils

A series of convenience functions to make basic image processing functions such as translation, rotation, resizing, skeletonization, and displaying Matplotlib images easier with OpenCV and both Python 2.7 and Python 3.

包含一系列使用起来很方便的函数进行一些基础的图像处理函数:例如平移、旋转、改变大小、骨骼化以及将图片转成能够用matplotlib能展示的方式

参考书籍:Practical Python and OpenCV -Dr.Adrian RoseBrock

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值