Понимание Карты Несоответствия в Opencv
Может кто-нибудь объяснить мне, что именно возвращает карта несоответствия. Потому что в документации мало что дано, и у меня есть несколько вопросов, связанных с этим.
- Возвращает ли он значения разности пикселей относительно обоих изображений?
Как использовать значения диспаратности в формуле для оценки глубины, т.е.
Depth = focalLength*Baseline/Disparity
Я где-то читал, что карта диспаратности дает функцию глубины f(z)
Пожалуйста, объясните, что это значит. Если глубина является чисто абсолютным значением, как она может быть сгенерирована как функция, или это функция по отношению к пикселям?
1 ответ
Разница d = pl - pr двух соответствующих точек изображения называется диспаратностью.
Здесь pl - это положение точки на левом стереоизображении, а pr - это положение точки на правом стереоизображении.
Для параллельных оптических осей диспаратность составляет d = xl - xr
⇒ поиск информации о глубине эквивалентен поиску диспаратности, то есть соответствующий пиксель расстояния обратно пропорционален диспаратности
Эти значения различий визуализируется в так называемой карте неравенства, каждое значение разрыва для каждого пиксела в опорном изображении (здесь: слева) кодируются как полутоновое значение. Также для пикселя, который не имеет никаких соответствий, определяется значение шкалы яркости (здесь: черный). Так называемая карта истинности - это карта диспаратности, которая содержит идеальное решение проблемы соответствия.
Связь между информацией о несоответствии и глубине:
Следующее изображение представляет две камеры (левую и правую), а затем пытается найти глубину точки p (x_w, z_x).
Результат глубины дан мой:
Итак, видно, что глубина обратно пропорциональна неравенству.
ОБНОВИТЬ:
Для расчета диспаратности вам понадобятся два изображения (1) Левое изображение и (2) Правое изображение. Допустим, есть пиксель в position (60,30)
на левом изображении и тот же пиксель присутствует в position (40,30)
на правильном изображении ваше несоответствие будет: 60 - 40 = 20
, Таким образом, карта диспаратности дает вам разницу между положением пикселей между левым изображением и правым изображением. Если пиксель присутствует на левом изображении, но отсутствует на правом изображении, тогда значение в этой позиции на карте диспаратности будет равно нулю. Как только вы получите значение диспаратности для каждого пикселя левого изображения, мы можем легко рассчитать глубину, используя формулу, приведенную в конце моего ответа.