Bootstrap

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官方文档:

参考资源