该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
求教,在用OpenCV java接口调用GrabCut图像分割函数时出现错误
代码为:
import org.opencv.core.*;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.*;
public class Test {
public static void main(String[] args) {
Mat img = Highgui.imread("image/2.jpg");
Mat mask = Mat.eye(800, 800, CvType.CV_8UC1); //图像大小为800*800
Rect rect = new Rect(0, 0, 700, 700);
Mat bgdModel = Mat.eye(1, 13*5, CvType.CV_64FC1);
Mat fgdModel = Mat.eye(1, 13*5, CvType.CV_64FC1);
Imgproc.grabCut(img, mask, rect, bgdModel, fgdModel, 1, 0);
Highgui.imwrite("D:\\mask.jpg", mask);
}
}
出现的错误:
OpenCV Error: Assertion failed (dtrm > std::numeric_limits::epsilon()) in unknown function, file ..\..\..\src\opencv\modules\imgproc\src\grabcut.cpp, line 216
Exception in thread "main" CvException [org.opencv.core.CvException: ..\..\..\src\opencv\modules\imgproc\src\grabcut.cpp:216: error: (-215) dtrm > std::numeric_limits::epsilon()
]
at org.opencv.imgproc.Imgproc.grabCut_0(Native Method)
at org.opencv.imgproc.Imgproc.grabCut(Imgproc.java:6528)
求教各位大神,怎么解决??