我正在尝试使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'