【发布时间】:2013-12-31 19:44:47
【问题描述】:
我正在尝试从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:这是我的第一个问题,如果格式有任何错误,请见谅。
【问题讨论】: