OpenCV4矩阵错误:函数<setSize'中的0 <= _dims && _dims <= CV_MAX_DIM

时间:2019-07-16 05:35:07

标签: c++ opencv4

我正在尝试使2个Mat数组使用相同的参数,但是当它们获取值时,它将失败。有人可以帮我解决这个错误吗?

使用OpenCV4.1.0,Qt5。当我在不使用数组的情况下拥有相同的代码时,它可以正常工作。

Mat aroi[cantobj], acir[cantobj];

for(int i =0; i < cantobj; i++){
aroi[i] = Mat(dHeight, dWidth, CV_8UC1, Scalar(0,0,0));
acir[i] = Mat(dHeight, dWidth, CV_8UC1, Scalar(0,0,0));
}

...(其他工作代码)...

    for (int i = 0; i < cantobj; i++) {

    if (!roi[i].empty()){
        ellipse(aroi[i], Point(circ[i][0], circ[i][1]), Size( roi[i].height, roi[i].height), 0, 0, 360, Scalar::all(255), -1, 8 );
        circle(frame, Point(circ[i][0], circ[i][1]), roi[i].height, red, 1, 8, 0);
        bitwise_and(grey, aroi[i], acir[i]);
    }

    pMOG2->apply(acir[i], fgMask, -.05);//, .002); 
    }

我希望输出结果是帧大小(可能不必要大)内感兴趣的背景片段化区域,或者只是roi大小(我猜这可以通过以下方式更改:

aroi[i] = Mat(roi[i].height, roi[i].height, CV_8UC1, Scalar(0,0,0));
acir[i] = Mat(roi[i].height, roi[i].height, CV_8UC1, Scalar(0,0,0));

相反,我得到了:

  抛出'cv :: Exception'实例后调用

terminate
  what():OpenCV(4.1.0)   /home/ricardo/Documentos/opencv-4.1.0/modules/core/src/matrix.cpp:209:   错误:(-215:断言失败)0 <= _dims && _dims <= CV_MAX_DIM in   函数'setSize'

0 个答案:

没有答案