![]() |
OpenCV 4.13.0
開源計算機視覺庫 (Open Source Computer Vision)
|
OpenCV 圖形 API (或 G-API) 是一個新的 OpenCV 模組,旨在使常規影像處理變得快速且可移植。這兩個目標是透過引入一種新的基於圖的執行模型來實現的。
G-API 是 OpenCV 中的一個特殊模組——與其他大多數主模組不同,它作為一個框架而不是某些特定的 CV 演算法。G-API 提供了定義 CV 操作、使用它構建圖(以表示式的形式)並最終為特定後端實現和執行操作的方法。
G-API 文件分為以下幾章
G-API 的動機及其目標。
G-API 架構及其主要內部元件的總體概述。
瞭解如何在 G-API 中引入新操作併為各種後端實現它。
G-API 的低階實現細節,適合希望做出貢獻的人。
核心 G-API 類、資料型別、後端等。
核心 G-API 操作——算術、布林和其他矩陣操作;
影像處理函式:色彩空間轉換、各種濾波器等。
影片處理功能。
繪圖和合成功能
下面展示了一個非常基本的 G-API 管道示例
G-API 是一個獨立的 OpenCV 模組,因此必須顯式包含其標頭檔案。main() 的前四行建立並初始化 OpenCV 的標準影片捕獲物件,該物件從連線的攝像頭或指定的檔案獲取影片幀。
接下來構建 G-API 管道。事實上,它是一系列在 cv::GMat 資料上呼叫的 G-API 操作。G-API 的重要方面是,此程式碼塊只是對操作的宣告,而不是操作本身。此時不進行任何處理,G-API 只跟蹤哪些操作構成管道以及如何連線它。G-API 的*資料物件*(這裡是 cv::GMat)用於連線操作。in 是一個*空*的 cv::GMat,表示這是計算的開始。
編寫 G-API 程式碼後,將其捕獲到呼叫圖中,並例項化 cv::GComputation 物件。該物件接收輸入/輸出資料引用(在此示例中,分別為 in 和 out cv::GMat 物件),並根據 in 和 out 之間的所有資料流重建呼叫圖。
cv::GComputation 是一個輕量級物件,因為它只是捕獲哪些操作構成了一個計算。但是,它可以用於執行計算——在下面的處理迴圈中,每個捕獲的幀(一個 cv::Mat input_frame)都傳遞給 cv::GComputation::apply()。
cv::GComputation::apply() 是一個多型方法,它接受可變數量的引數。由於此計算定義在一個輸入和一個輸出上,因此使用了一個特殊的 cv::GComputation::apply() 過載來傳遞輸入資料並獲取輸出資料。
在內部,cv::GComputation::apply() 會為給定的輸入引數編譯捕獲的圖,並立即在資料上執行編譯後的圖。
透過這個例子可以勾勒出幾個重要的概念
請參閱 教程和移植示例,瞭解更多關於各種 G-API 功能和概念的資訊。