Улучшение Grabcut в OpenCV

Я только что реализовал GrapCV-алгоритм (OpenCV, C ++, Visual Studio 12):

grabCut (* изображение, маска, прямоугольник, bgdModel, fgdModel, 1, GC_INIT_WITH_MASK
);

Я использовал это, чтобы сегментировать следующую картину:

введите описание изображения здесь

Мой результат таков:

введите описание изображения здесь

Мой вопрос: как мне теперь улучшить алгоритм, чтобы видеть только обоих игроков? Моей первой идеей было изменение глубины цвета, но я не знаю, как отправить его в «grabCut». Или есть другие способы?

1

Решение

В папке opencv2.4.6 / образцы / CPP, Есть много файлов, которые демонстрируют использование некоторых классических алгоритмов. Есть файл с именем grabcut.cpp в котором подробно рассказывается, как применить этот алгоритм к вашему приложению. Так что вам нужно просто вставить этот файл в вашу программу.

Если у вас есть другие вопросы, просто отладьте их с помощью grabcut.cpp, и вы увидите, как это работает в деталях. И если вы хотите реализовать это самостоятельно. вам нужно изменить функцию с новым параметром GC_EVAL или же GC_INIT_WITH_MASK,

grabCut(image,    // input image
mask,   // segmentation mask
rect,// rectangle containing foreground
bgModel,fgModel, // models
2,        // number of iterations
GC_INIT_WITH_RECT); // use rectangle
-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]