#opencv #computer-vision #image-segmentation #background-subtraction
#opencv #компьютерное зрение #сегментация изображения #вычитание фона
Вопрос:
Я извлекаю человека из его фона, и для этого я использую cv2.grabcut. Но иногда фоновые пиксели ошибочно классифицируются как передний план, следовательно, извлечение не идеально. Я прикрепил полученное изображение. Как улучшить это извлечение?
Комментарии:
1. Вы должны предоставить исходное изображение и минимальный код воспроизведения. В противном случае мы можем дать только несколько советов.
Ответ №1:
Чтобы улучшить извлечение, вам нужно поиграть с iterCount
и mode
параметрами.
- Например:
У меня есть следующее изображение:
- Если я применю пример кода:
-
Могу ли я улучшить, изменив
iterCount
?- iterCount = 10, 20 (соответственно)
- iterCount = 30, 40 (соответственно)
-
Могу ли я улучшить, изменив режимы?
mode =
GC_INIT_WITH_RECT
,GC_INIT_WITH_MASK
(соответственно)
В моем случае GC_INIT_WITH_MASK
работает хорошо, но я сказал, что вам нужно изменять параметры, пока не будет получен удовлетворительный результат.
Комментарии:
1. На основе предоставленного вами кода маска была создана вручную с помощью paint. Я ищу что-то, что не требует ручного вмешательства
2. Вам не обязательно использовать GC_INIT_WITH_MASK, возможно, GC_INIT_WITH_RECT работает лучше
3. Я использую только GC_INIT_WITH_RECT, поскольку я обнаруживаю человека посредством обнаружения объекта и передаю его координаты в grabcut для извлечения