Разница между meanShiftFiltering и meanShiftSegmentation в OpenCV
Может кто-нибудь объяснить мне разницу между gpu::meanshiftFiltering и gpu:: meanShiftSegmentation?
Документация не очень помогает.
Может быть, это другой вопрос, но моя цель состоит в том, чтобы выделить границы объектов, если бы кто-то мог помочь мне в этом, это было бы здорово.
1 ответ
TL;DR
Фильтрация среднего смещения предназначена для уменьшения шума и улучшения качества изображения, она возвращает "более чистое" изображение.
С другой стороны, среднее смещение сегментирует изображение на области, которые имеют примерно одинаковый цвет. Возвращает карту каждого пикселя в соответствующий сегмент.
Если вы хотите границы объекта, вы должны использовать сегментацию среднего сдвига.
Пожалуйста, ознакомьтесь с основополагающей работой Comaniciu и Meer Mean shift: надежный подход к анализу пространств признаков (PAMI 2002), описывающий процедуру "среднее смещение".
"Среднее смещение" - это числовая процедура, предназначенная для поиска мод ("точек концентрации") распределения, определенных в образцах. Проще говоря, в контексте обработки изображений: все пиксели изображения можно рассматривать как образцы в пространстве RGB-XY. "Красная" область на изображении может рассматриваться как "высокая вероятность" пикселей, имеющих красный цвет в координатах XY этой области. Таким образом, вы можете рассматривать изображение как набор образцов RGB-XY, определяющих распределение в этом пространстве.
Процедура "среднее смещение" предназначена для поиска областей в пространстве RGB-XY с высокой вероятностью ( "режим" = локальные максимальные точки распределения).
Почему эта перспектива полезна? Вы можете спросить себя. Что касается изображения с шумом, шум отталкивает пиксели от режимов исходного распределения в пространстве RGB-XY. Если вы можете "сдвинуть" каждый пиксель от его текущего (шумного) цвета в сторону режима распределения, вы, вероятно, уменьшите шум.
Таким образом, фильтрация среднего смещения изменяет цвета пикселей, чтобы они напоминали наиболее доминирующий цвет в их окрестностях.
Сделав шаг вперед, вы можете спросить себя "к какому из режимов относится каждый пиксель?". Таким образом, если у вас есть m
режимы (в пространстве RGB-XY) вы можете назначить каждый пиксель одному из этих m
режимы, эффективно сегментируя изображение в m
сегменты. Эта процедура называется сегментацией среднего сдвига.