From 389c002eeab841cf6198a5df064db177c016f78f Mon Sep 17 00:00:00 2001 From: James Bowman Date: Thu, 22 Jul 2010 23:39:42 +0000 Subject: [PATCH] grabCut fist impl and test --- modules/python/api | 9 +++++++++ modules/python/cv.cpp | 26 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/modules/python/api b/modules/python/api index b56461d390..000ff26a02 100644 --- a/modules/python/api +++ b/modules/python/api @@ -1644,6 +1644,15 @@ HOGDetectMultiScale CvSeq* int nbins 9 int gammaCorrection 1 +grabCut + CvArr image + CvArr mask + CvRect rect + CvArr bgdModel + CvArr fgdModel + int iterCount + int mode + # These functions are handwritten in cv.cpp; they appear here as 'doconly' declarations # so that their documentation can be auto-generated ApproxPoly /doconly diff --git a/modules/python/cv.cpp b/modules/python/cv.cpp index 5bb444bcb6..a68dd33d15 100644 --- a/modules/python/cv.cpp +++ b/modules/python/cv.cpp @@ -3763,6 +3763,21 @@ static CvSeq* cvHOGDetectMultiScale( const CvArr* image, CvMemStorage* storage, return seq; } +static void cvgrabCut(CvArr *image, + CvArr *mask, + CvRect rect, + CvArr *bgdModel, + CvArr *fgdModel, + int iterCount, + int mode) +{ + cv::Mat _image = cv::cvarrToMat(image); + cv::Mat _mask = cv::cvarrToMat(mask); + cv::Mat _bgdModel = cv::cvarrToMat(bgdModel); + cv::Mat _fgdModel = cv::cvarrToMat(fgdModel); + grabCut(_image, _mask, rect, _bgdModel, _fgdModel, iterCount, mode); +} + static int zero = 0; /************************************************************************/ @@ -3826,10 +3841,13 @@ static int to_ok(PyTypeObject *to) #define MKTYPE(NAME) do { NAME##_specials(); if (!to_ok(&NAME##_Type)) return; } while (0) +using namespace cv; + extern "C" #if defined WIN32 || defined _WIN32 __declspec(dllexport) #endif + void initcv() { PyObject *m, *d; @@ -3939,6 +3957,14 @@ void initcv() PUBLISH(CV_PTLOC_VERTEX); PUBLISH(CV_PTLOC_OUTSIDE_RECT); + PUBLISH(GC_BGD); + PUBLISH(GC_FGD); + PUBLISH(GC_PR_BGD); + PUBLISH(GC_PR_FGD); + PUBLISH(GC_INIT_WITH_RECT); + PUBLISH(GC_INIT_WITH_MASK); + PUBLISH(GC_EVAL); + #include "generated2.i" #if 0