OpenCV
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的电脑视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、电脑视觉以及模式识别程序。2011年起,OpenCV开始支持GPU实时加速运算[2]。
原作者 | 英特尔柳树车库 Itseez |
---|---|
首次发布 | 2000年6月 |
当前版本 | 4.10.0[1](2024年6月4日年 ) |
原始码库 | |
编程语言 | C、C++、Python、Java、汇编语言 |
操作系统 | 跨平台:Windows、Linux、macOS、FreeBSD、NetBSD、OpenBSD;Android、iOS、Maemo、BlackBerry 10 |
平台 | IA-32, x86-64 |
文件大小 | ~200 MB |
语言 | 英语 |
类型 | 函数库 |
许可协议 | Apache |
网站 | opencv |
历史
OpenCV项目最早由英特尔公司于1999年启动,致力于CPU密集型的任务,是一个包括如光线追踪和3D显示的计划的一部分。早期OpenCV的主要目标是
- 为推进机器视觉的研究,提供一套开源且优化的基础库。不重造轮子。
- 提供一个共同的基础库,使得开发人员的代码更容易阅读和转让,促进了知识的传播。
- 透过提供不需要开源或免费的软件许可,促进商业应用软件的开发。
OpenCV的第一个预览版本于2000年在国际电脑视觉与模式识别会议公开,并且陆续提供了五个测试版本。1.0版本于2006年发布。
OpenCV的第二个主要版本是2009年10月的OpenCV 2.0。该版本的主要更新包括C++接口,更容易、更类型安全的模式,新的函数,以及对现有实现的优化(特别是多核心方面)。现在每6个月就会有一个官方版本[3],并由一个商业公司赞助的独立小组进行开发。
在2012年8月,OpenCV的营运由一个非营利组织(OpenCV.org)来提供,并保留了一个开发者网站[4]和用户网站。[5]
应用领域
OpenCV可用于解决如下领域的问题:
编程语言
OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python、Java和MATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以透过在线文档获取[6]。现在也提供对于C#、Ch[7]的支持。在 3.4 版本中,发布了OpenCV函数的JavaScript绑定,称为OpenCV.js。
硬件加速
如果OpenCV在系统中找到了英特尔集成性能原语,它就会使用优化的例程去加速运行。
以CUDA为基础的图形处理器(GPU)接口于2010年9月起开展[8]。
以OpenCL为基础的GPU接口则从2012年10月起开启[9],2.4.13.3版的相关文件可以在docs.opencv.org阅览[10]。
操作系统支持
OpenCV可以在Windows、Android[11]、Maemo[12]、FreeBSD、OpenBSD、iOS[13]、Linux和Mac OS等平台上运行。另外也可以在移动设备的系统上运行,诸如:Android, iOS, Maemo,[14] BlackBerry 10 以及 QNX.[15]用户可以在Github获得官方版本,或者从Git获得开发版本。OpenCV使用CMake。
Windows 操作系统要求
在Windows上编译OpenCV中与摄像输入有关部分时,需要DirectShow SDK中的一些基类。该SDK可以从预先编译的Microsoft Platform SDK (or DirectX SDK 8.0 to 9.0c / DirectX Media SDK prior to 6.0)的子目录Samples\Multimedia\DirectShow\BaseClasses获得。
参考文献
- ^ OpenCV 4.10.0 Is Now Available!. 2024年6月4日 [2024年6月8日].
- ^ CUDA. opencv.org. [2020-10-15].
- ^ OpenCV change logs: 存档副本. [2012-11-20]. (原始内容存档于2013-01-15).
- ^ OpenCV Developer Site: http://code.opencv.org Archive.is的存档,存档日期2013-01-13
- ^ OpenCV User Site: http://opencv.org/ (页面存档备份,存于互联网档案馆)
- ^ OpenCV C interface: http://docs.opencv.org (页面存档备份,存于互联网档案馆)
- ^ Ch OpenCV: http://www.softintegration.com/products/thirdparty/opencv/ (页面存档备份,存于互联网档案馆)
- ^ Cuda GPU port. (原始内容存档于2016-05-21).
- ^ OpenCL Announcement: http://opencv.org/opencv-v2-4-3rc-is-under-way.html 互联网档案馆的存档,存档日期2019-02-17.
- ^ OpenCL-accelerated Computer Vision API Reference: http://docs.opencv.org/modules/ocl/doc/ocl.html
- ^ Android port: 存档副本. [2012-12-30]. (原始内容存档于2012-11-26).
- ^ Maemo port: https://garage.maemo.org/projects/opencv (页面存档备份,存于互联网档案馆)
- ^ iPhone port: http://www.eosgarden.com/en/opensource/opencv-ios/overview/ (页面存档备份,存于互联网档案馆)
- ^ Port of Intel's Open Source Computer Vision Library (OpenCV) to Maemo. Maemo Garage. 10 August 2011 [2023-01-30].
- ^ hungc. Blackberry Port of OpenCV [partial]. GitHub. 4 September 2019.