Понимание Карты Несоответствия в Opencv

Может кто-нибудь объяснить мне, что именно возвращает карта несоответствия. Потому что в документации мало что дано, и у меня есть несколько вопросов, связанных с этим.

  1. Возвращает ли он значения разности пикселей относительно обоих изображений?
  2. Как использовать значения диспаратности в формуле для оценки глубины, т.е.

    Depth = focalLength*Baseline/Disparity

  3. Я где-то читал, что карта диспаратности дает функцию глубины f(z)

Пожалуйста, объясните, что это значит. Если глубина является чисто абсолютным значением, как она может быть сгенерирована как функция, или это функция по отношению к пикселям?

1 ответ

Решение

Разница d = pl - pr двух соответствующих точек изображения называется диспаратностью.

Здесь pl - это положение точки на левом стереоизображении, а pr - это положение точки на правом стереоизображении.

Для параллельных оптических осей диспаратность составляет d = xl - xr

⇒ поиск информации о глубине эквивалентен поиску диспаратности, то есть соответствующий пиксель расстояния обратно пропорционален диспаратности

Эти значения различий визуализируется в так называемой карте неравенства, каждое значение разрыва для каждого пиксела в опорном изображении (здесь: слева) кодируются как полутоновое значение. Также для пикселя, который не имеет никаких соответствий, определяется значение шкалы яркости (здесь: черный). Так называемая карта истинности - это карта диспаратности, которая содержит идеальное решение проблемы соответствия.

образ

Связь между информацией о несоответствии и глубине:

Следующее изображение представляет две камеры (левую и правую), а затем пытается найти глубину точки p (x_w, z_x).

image2

Результат глубины дан мой:

image3

Итак, видно, что глубина обратно пропорциональна неравенству.

ОБНОВИТЬ:

Для расчета диспаратности вам понадобятся два изображения (1) Левое изображение и (2) Правое изображение. Допустим, есть пиксель в position (60,30) на левом изображении и тот же пиксель присутствует в position (40,30) на правильном изображении ваше несоответствие будет: 60 - 40 = 20, Таким образом, карта диспаратности дает вам разницу между положением пикселей между левым изображением и правым изображением. Если пиксель присутствует на левом изображении, но отсутствует на правом изображении, тогда значение в этой позиции на карте диспаратности будет равно нулю. Как только вы получите значение диспаратности для каждого пикселя левого изображения, мы можем легко рассчитать глубину, используя формулу, приведенную в конце моего ответа.

Другие вопросы по тегам