OpenCV 学习(一):简介
背景介绍
一直从事 Android 和音视频相关领域开发,图像处理主要基于 OpenGL,最近在研究一些图像智能化相关的东西,准备把算法之类的捡起来,首先想到的就是 OpenCV。OpenCV 是计算机视觉中经典的专用库,其支持多语言、跨平台,功能强大,逐步了解它的能力和内部的算法实现原理,是一件一举多得的事情。平时使用的是 Mac 平台,出于便利性考虑学习过程中主要以 Python 接口为主;日后应用场景还是移动端,应用时主要是 C++接口为主。
OpenCV 介绍
OpenCV 由 Gary Bradsky 于 1999 年在英特尔创立,第一版于 2000 年问世。Vadim Pisarevsky 加入 Gary Bradsky,一起管理英特尔的俄罗斯软件 OpenCV 团队。2005 年,OpenCV 用于 Stanley,该车赢得了 2005 年 DARPA 挑战赛的冠军。后来,在 Willow Garage 的支持下,它的积极发展得以继续,由 Gary Bradsky 和 Vadim Pisarevsky 领导了该项目。OpenCV 现在支持与计算机视觉和机器学习有关的多种算法,并且正在日益扩展。
OpenCV 支持多种编程语言,例如 C++、Python、Java 等,并且可在 Windows、Linux、OS X、Android 和 iOS 等不同平台上使用。基于 CUDA 和 OpenCL 的高速 GPU 操作的接口也正在积极开发中。
OpenCV-Python 是用于 OpenCV 的 Python API,结合了 OpenCV C++ API 和 Python 语言的最佳特性。OpenCV-Python 是旨在解决计算机视觉问题的 Python 专用库。
Python 主要因为它的简单性和代码可读性。它使程序员可以用较少的代码行表达想法,而不会降低可读性。
与 C/C++之类的语言相比,Python 速度较慢。也就是说,可以使用 C/C++轻松扩展 Python,这使我们能够用 C/C++编写计算密集型代码并创建可用作 Python 模块的 Python 包装器。这给我们带来了两个好处:首先,代码与原始 C/C++代码一样快(因为它是在后台运行的实际 C++代码),其次,在 Python 中比 C/C++编写代码更容易。OpenCV-Python 是原始 OpenCV C++实现的 Python 包装器。
OpenCV-Python 利用了 Numpy,这是一个高度优化的库,用于使用 MATLAB 样式的语法进行数值运算。所有 OpenCV 数组结构都与 Numpy 数组相互转换。这也使与使用 Numpy 的其他库(例如 SciPy 和 Matplotlib)的集成变得更加容易。
OpenCV-Python Tutorials 官方文档:https://docs.opencv.org/master/d6/d00/tutorial_py_root.html
参考资源
版权声明: 本文为 InfoQ 作者【轻口味】的原创文章。
原文链接:【http://xie.infoq.cn/article/f6c4076043a3c03e5bf95108c】。文章转载请联系作者。
评论