我正在用 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 的一维向量时我没有遇到问题,二维向量有问题吗?