GrabCut - bgdModel & fgdModel leer - Assertion-Fehler
Ich bin versucht Bildsegmentierung mit GrabCut Algorithmus in OpenCV2.1 (C++)
Hier mein code:
Mat rgbWorkImage = imread(argv[1]);
Mat mask;
mask = Scalar(0);
Mat bgdModel, fgdModel;
Rect rect = Rect(Point(0,0), imageSize);
grabCut(rgbWorkImage, mask, rect, bgdModel, fgdModel, 0, GC_INIT_WITH_RECT);
grabCut(rgbWorkImage, mask, rect, bgdModel, fgdModel, 2, GC_EVAL);
Leider bin ich immer dieser Laufzeitfehler:
OpenCV Error: Assertion failed (!bgdSamples.empty() && !fgdSamples.empty()) in initGMMs, file /build/buildd/opencv-2.1.0/src/cv/cvgrabcut.cpp, line 368
terminate called after throwing an instance of 'cv::Exception'
what(): /build/buildd/opencv-2.1.0/src/cv/cvgrabcut.cpp:368: error: (-215) !bgdSamples.empty() && !fgdSamples.empty() in function initGMMs
Was vermisse ich hier?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einem Fall, wo der Fehler passieren könnte, ist, wenn Ihr Bild hat sich null für entweder die Breite oder die Höhe (aber nicht für beide), weil dieser Fehler: https://code.ros.org/trac/opencv/ticket/691 (das scheint behoben zu sein, nachdem OpenCV 2.1).
Wenn die Bild-Abmessungen sind nicht gleich null ist, sollten Sie auch prüfen, ob die ROI rechteckig:
imageSize
hat nicht die Größe null) undGC_INIT_WITH_RECT
markiert alle Pixel, die außerhalb des REK als "hintergrund" und alle Pixel innerhalb der rect-als "wahrscheinlich " Vordergrund", und die geltend machen, erwarten, dass es Pixel in beiden Vorder - (oder "wahrscheinlich " Vordergrund") und der hintergrund (oder "wahrscheinlich hintergrund") Liste.