Как использовать cvinvoke. grabcut с маской в C# emgu 3.0
Привет,
Я создаю интерактивный алгоритм Grabcut, который взят из открытого резюме. Я делаю это в c# Emgu 3.0. Я смог нарисовать прямоугольник, чтобы извлечь изображение переднего плана с помощью
приведенный ниже код.
using (Matrix<double> bgdModel = new Matrix<double>(1, 13 * 5)) using (Matrix<double> fgdModel = new Matrix<double>(1, 13 * 5)) { CvInvoke.GrabCut(original, mask1, new Rectangle(0, 0, original.Width, original.Height), bgdModel, fgdModel, 1, Emgu.CV.CvEnum.GrabcutInitType.InitWithRect); CvInvoke.GrabCut(original, mask1, rect, bgdModel, fgdModel, 2, Emgu.CV.CvEnum.GrabcutInitType.Eval); }
Теперь следующая часть заключается в том, что я хочу создать интерактивное прикосновение, но не могу найти никаких ссылок на использование метода Grabcut с маской в c#. Может ли кто-нибудь помочь мне?
Спасибо,
Индра
Что я уже пробовал:
Мне удалось успешно нарисовать область маски, а затем передать маску в нижнюю секцию, но она не работает.
using (Matrix<double> bgdModel = new Matrix<double>(1, 13 * 5)) using (Matrix<double> fgdModel = new Matrix<double>(1, 13 * 5)) { CvInvoke.GrabCut(original, mask1, new Rectangle(0, 0, original.Width, original.Height), bgdModel, fgdModel, 1, Emgu.CV.CvEnum.GrabcutInitType.InitWithRectMask); CvInvoke.GrabCut(original, mask1, rect, bgdModel, fgdModel, 2, Emgu.CV.CvEnum.GrabcutInitType.Eval); }<pre lang="c#">
Я не могу понять, как передать выбранную область в этом методе.