先来看百度百科的解释:
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#,Ch, Ruby的支持。所有新的开发和算法都是用C++接口。一个使用CUDA的GPU接口也于2010年9月开始实现。
OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。OpenCV是一个基于BSD许可[1] (开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。[2] 最新版本是3.1 ,2016年1月29日发布[3] 。
OpenCV 拥有包括 500 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。
OpenCV 为Intel® Integrated Performance Primitives (IPP) 提供了透明接口。 这意味着如果有为特定处理器优化的 IPP 库, OpenCV 将在运行时自动加载这些库。[4]
(注:OpenCV 2.0版的代码已显著优化,无需IPP来提升性能,故2.0版不再提供IPP接口)[5]
OpenCV-Python是OpenCV的python的API接口,它拥有OpenCV C++ API的功能,同时也拥有Python语言的特性。
虽然Python语言运行起来比C++语言慢,但是Python语言具有简单、短小、学习快的特点,同时Python也很方便调用C++开发的组件,这样高性能要求的功能可以使用C++来实现。
这样一来,我们就可以既运行像C++一样快的代码,又可以使用简单易用Python语言来开发软件的功能,这就是为什么要实现OpenCV-Python的接口的原因。同时OpenCV-Python
也实现与Numpy库的接口规范,这样很方便在Python使用Numpy,比如可以把Numpy的数据结构转给OpenCV,也可以把OpenCV的数据结构转给Numpy,另外也能与SciPY、Matplotlib协同使用,
这样可以使用的范围就更加广泛了,所以OpenCV-Python是一个很适合来开发视觉原型、进行视觉的实验等等工作。
http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_tutorials.html
https://github.com/skvark/opencv-python
http://docs.opencv.org/2.4/doc/tutorials/tutorials.html
http://opencv-python-tutroals.readthedocs.io