OpenCV GAPI模块动态图实例
OpenCV是一个流行的计算机视觉库,它包含许多用于处理图像和视频的功能。其中GAPI模块是OpenCV的一部分,它提供了一种简单的方式来构建可重复使用的图像处理管道。在本篇文章中,我们将介绍如何使用GAPI模块创建动态图(Dynamic Graph)。
动态图是由相互连接的计算节点组成的图形。每个节点都接收输入数据,并根据其规则生成输出数据。当图中的某些节点的输入发生变化时,其余节点会自动重新计算其输出。这使得动态图非常适用于实时应用程序。
首先,我们需要安装OpenCV 4.5或更高版本。然后,我们将创建一个简单的GAPI管道来读取摄像头的视频流,并将其转换为灰度图像。
#include <opencv2/gapi.hpp>
#include <opencv2/gapi/video.hpp>
#include <opencv2/videoio.hpp>
int main()
{
cv::GMat in;
cv::GMat out;
cv::GStreamingCompiled compiled =
cv::GCompile(cv::GIn(in), cv::gapi::video::stream());
cv::VideoCapture cap(0);
while (true) {
cv::Mat frame;
cap >> frame;
if