1

我正在用 C++ 开发一个系统,用于比较视频中动态帧数(窗口大小)的动态感兴趣区域数(ROI)。出于这个原因,我使用 Mat 的二维向量,声明和启动如下:

vector< vector<Mat> > ROIvector(numberofROI,vector<Mat>(windowsize));

向量中填充了来自如下视频的 Mat:

    for(int i=0;i<windowsize;i++)
        {
            video>>frame;
            if(frame.empty())
            {
                break;
            }
            for(int j=0;j<numberofROI;j++)
            {
                Mat temp;
                frame(ROIRectVector[j]).copyTo(temp);
                ROIvector[j].push_back(temp);
            }
        }

但是每当我尝试访问单个 Mat 时,例如 ROIvector[0][3],openCV 都会抛出这种类型的异常。

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file C:/slave/WinInstallerMegaPack/src/opencv/modules/core/src/array.cpp, line 2482

以相同方式访问 Mat 的一维向量时我没有遇到问题,二维向量有问题吗?

4

0 回答 0