Grabcut中的断言错误

时间:2013-12-31 09:42:27

标签: android opencv

我正在尝试从reference code在Android中实施Grabcut。但是当我运行代码时,会生成以下错误。

错误:

OpenCV Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in cv::Mat::Mat(const cv::Mat&, const Rect&), file /home/reports/ci/slave_desktop/50-SDK/opencv/modules/core/src/matrix.cpp, line 323

我还阅读了Similar article on Stackoverflow并对代码进行了以下更改,但仍然遇到了相同的错误。

更改了部分参考代码:

private void backgroundSubtracting(Mat img, Mat background) {
    Mat firstMask = new Mat();
    Mat bgModel = new Mat();
    Mat fgModel = new Mat();
    Mat mask;
    Mat source = new Mat(1, 1, CvType.CV_8U, new Scalar(3.0));
    dst = new Mat();
    Rect rect = new Rect(318,100,513,349);  // <= Static value for checking

    Imgproc.grabCut(img, firstMask, rect, bgModel, fgModel, 1, 0 /* GC_INIT_WITH_RECT */);

PS:这是我的第一个问题,如果格式化有任何错误,那就很抱歉。

1 个答案:

答案 0 :(得分:1)

在我看来,当抓取矩形不在垫子内时,就会发生断言 什么是图像尺寸?