Я пытаюсь извлечь карту несоответствия объектов переднего плана на изображении. Объекты переднего плана извлекаются с использованием цвета, и конечная цель - определить координаты извлеченных объектов. Ниже показано замаскированное левое изображение вида с выделенными красноватыми объектами.
а затем есть правильное изображение
Фон - это в основном гигантское окно, которое я хочу игнорировать, и мне нужно только найти положение красноватых (или любого другого цвета, который я выберу позже).
Поигравшись с параметрами алгоритма SGBM в примере OpenCV, в основном
int SADWindowSize
int minDisparity
int numberOfDisparities
Я не смог получить удовлетворительных результатов, точнее, алгоритм не смог очень хорошо справиться с однородной текстурой замаскированных частей. Я отправлю два примера, чтобы проиллюстрировать это. SADWindowSize
- единственный параметр, который варьируется в этих примерах, потому что он дает наиболее четкие результаты.
Пример 1: с меньшим размером окна = 9 и количеством несоответствий = 64
Пример 2: с меньшим размером окна = 23 и количеством несоответствий = 64
Больший размер окна дает более размытые результаты, что нежелательно.
Вопрос: Неправильно ли маскировать фон при расчете карты диспаратности? Другой возможный подход - вычислить карту диспаратности и затем применить маску, но я не уверен в достоверности результатов в этом случае.
Обратите внимание, что камеры откалиброваны и изображения (и маски) исправлены.