From 65f3b09d3161cd8b0f68815c1de4d7250af6a90b Mon Sep 17 00:00:00 2001 From: Vadim Pisarevsky Date: Sat, 19 Jun 2010 17:25:42 +0000 Subject: [PATCH] added grabcut() call --- samples/cpp/select3dobj.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/samples/cpp/select3dobj.cpp b/samples/cpp/select3dobj.cpp index 2fb7e39e6b..a3463d7463 100644 --- a/samples/cpp/select3dobj.cpp +++ b/samples/cpp/select3dobj.cpp @@ -122,8 +122,15 @@ static Rect extract3DBox(const Mat& frame, Mat& shownFrame, Mat& selectedObjFram fillConvexPoly(selectedObjMask, &hull[0], hull.size(), Scalar::all(255), 8, 0); Rect roi = boundingRect(Mat(hull)) & Rect(Point(), frame.size()); - ///////////////// insert GrabCut here //////////////////// - ////////////////////////////////////////////////////////// + if( runExtraSegmentation ) + { + selectedObjMask = Scalar::all(GC_BGD); + fillConvexPoly(selectedObjMask, &hull[0], hull.size(), Scalar::all(GC_PR_FGD), 8, 0); + Mat bgdModel, fgdModel; + grabCut(frame, selectedObjMask, roi, bgdModel, fgdModel, + 3, GC_INIT_WITH_RECT + GC_INIT_WITH_MASK); + bitwise_and(selectedObjMask, Scalar::all(1), selectedObjMask); + } frame.copyTo(selectedObjFrame, selectedObjMask); return roi;