OpenCV

原作者| 英特尔柳树车库（英语：Willow Garage） Itseez
首次发布| 2000年6月，​24年前​（2000-06）
当前版本|

* 4.11.0（2025年1月9日；穩定版本）[1]

源代码库|

* github.com/opencv/opencv

编程语言| C、C++、Python、Java、汇编语言
操作系统| 跨平臺：Windows、Linux、macOS、FreeBSD、NetBSD、OpenBSD；Android、iOS、Maemo、BlackBerry 10
平台| IA-32, x86-64
文件大小| ~200 MB
语言| 英语
类型| 函式庫
许可协议| Apache
网站| opencv.org、opencv.ai

OpenCV的全称是Open Source Computer Vision Library，是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发，以BSD许可证授权发行，可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。2011年起，OpenCV开始支持GPU实时加速运算[2]。

## 历史

[编辑]

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（英语：Ch (computer programming)）[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获得。

## 参考文献

[编辑]

1. ^ Release 4.11.0. 2025年1月9日  [2025年1月26日].
2. ^ CUDA. opencv.org.  [2020-10-15]. （原始内容存档于2025-01-31）.
3. ^ OpenCV change logs: 存档副本.  [2012-11-20]. （原始内容存档于2013-01-15）.
4. ^ OpenCV Developer Site: http://code.opencv.org Archive.today的存檔，存档日期2013-01-13
5. ^ OpenCV User Site: http://opencv.org/ （页面存档备份，存于互联网档案馆）
6. ^ OpenCV C interface: http://docs.opencv.org （页面存档备份，存于互联网档案馆）
7. ^ Ch OpenCV: http://www.softintegration.com/products/thirdparty/opencv/ （页面存档备份，存于互联网档案馆）
8. ^ Cuda GPU port. （原始内容存档于2016-05-21）.
9. ^ OpenCL Announcement: http://opencv.org/opencv-v2-4-3rc-is-under-way.html 互联网档案馆的存檔，存档日期2019-02-17.
10. ^ OpenCL-accelerated Computer Vision API Reference: http://docs.opencv.org/modules/ocl/doc/ocl.html （页面存档备份，存于互联网档案馆）
11. ^ Android port: 存档副本.  [2012-12-30]. （原始内容存档于2012-11-26）.
12. ^ Maemo port: https://garage.maemo.org/projects/opencv （页面存档备份，存于互联网档案馆）
13. ^ iPhone port: http://www.eosgarden.com/en/opensource/opencv-ios/overview/ （页面存档备份，存于互联网档案馆）
14. ^ Port of Intel's Open Source Computer Vision Library (OpenCV) to Maemo. Maemo Garage. 10 August 2011  [2023-01-30]. （原始内容存档于2016-03-17）.
15. ^ hungc. Blackberry Port of OpenCV [partial]. GitHub. 4 September 2019  [2024-11-24]. （原始内容存档于2018-06-11）.

## 外部链接

[编辑]

* 官方网站
* OpenCV中文网站 和 中文wiki（页面存档备份，存于互联网档案馆）