OpenCV 的設計目標是跨平臺。因此,該庫是用 C 語言編寫的,這使得 OpenCV 幾乎可以移植到任何商業系統,從 PowerPC Mac 到機器人狗。從 2.0 版本開始,OpenCV 除了傳統的 C 介面外,還包含了新的 C++ 介面。在大多數情況下,新的 OpenCV 演算法現在都是用 C++ 開發的。此外,還開發了 Python 和 Java 等語言的包裝器,以鼓勵更廣泛的受眾採用 OpenCV。OpenCV 可以在桌面(Windows、Linux、Android、MacOS、FreeBSD、OpenBSD)和移動(Android、Maemo、iOS)裝置上執行。
Android
自 2010 年起,OpenCV 已移植到 Android 環境,允許在移動應用程式開發中使用該庫的全部功能。
ARM
目前,大多數嵌入式裝置使用基於 ARM 架構的 CPU,包括 Cortex-A 和 Cortex-M 系列。深度學習演算法通常在具有強大 Nvidia GPU 的基於 x86/x64 的伺服器上進行訓練。但是,推理需要在低功耗的 ARM 晶片上執行。
CUDA
2010 年,一個提供 GPU 加速的新模組被新增到 OpenCV 中。'gpu' 模組涵蓋了庫功能的很大一部分,並且仍在積極開發中。它是使用 CUDA 實現的,因此受益於 CUDA 生態系統,包括 NPP(NVIDIA 效能基元)等庫。透過在 OpenCV 中新增 CUDA 加速,開發人員可以在更高解析度的影像上即時執行更準確和複雜的 OpenCV 演算法,同時消耗更少的功率。
iOS
2012 年,OpenCV 開發團隊積極致力於為 iOS 新增擴充套件支援。自 2.4.2 版本(2012 年)起,提供了完整的整合。
OpenCL
2011 年,一個提供 OpenCL™ 加速 OpenCV 演算法的新模組被新增到庫中。這使得基於 OpenCV 的程式碼能夠利用異構硬體,特別是利用離散和整合 GPU 的潛力。自 2.4.6 版本(2013 年)起,官方 OpenCV WinMegaPack 包含 ocl 模組。
在 2.4 分支中,函式和類的 OpenCL 加速版本位於單獨的 ocl 模組和單獨的名稱空間 (cv::ocl) 中,並且通常具有不同的名稱(例如 cv::resize() 與 cv::ocl::resize() 以及 cv::CascadeClassifier 與 cv::ocl::OclCascadeClassifier),這需要在使用者應用程式程式碼中使用單獨的程式碼分支。從 OpenCV 3.0 (master 分支,截至 2013 年) 開始,OpenCL 加速分支透明地新增到原始 API 函式中,並在可能/合理的情況下自動使用。
