Как интерпретировать значение Disparity

Предположим, у нас есть две исправленные фотографии с известным положением пикселей со стереокамер, и мы хотим нарисовать карту несоответствия

какой будет ближайший пиксель, если пиксель на правой фотографии движется в обоих направлениях? Я знаю, что самая дальняя точка - это точка, которая имеет минимальное значение, если мы сделаем q.x -p.x (p - пиксель на левой фотографии), поэтому максимальное значение из этого является самым близким?

Спасибо


person Raziel    schedule 25.05.2017    source источник


Ответы (1)


Карты диспаратности обычно записываются со значениями со знаком, которые указывают, в каком направлении пиксель перемещается от одного изображения к другому в стереопаре. Например, если у вас есть пиксель в левом виде в позиции ‹100,250>, а в правом ракурсе соответствующий пиксель находится в позиции‹ 115,250>, тогда карта диспаратности для левого обзора в позиции ‹100,250> будет иметь значение 15. Карта диспаратности для правого обзора в позиции ‹115,250> будет иметь значение -15.

Карты диспаратности могут быть многоканальными изображениями, обычно со сдвигом по оси x в первом канале и смещением по оси y во втором канале. Если вы смотрите на стереопары высокого разрешения с большим несоответствием, возможно, вы не сможете уместить все возможные значения диспаратности в 8-битное изображение. В киноиндустрии большинство карт диспаратности хранятся в виде 16- или 32-битных изображений с плавающей запятой.

Не существует стандартного метода масштабирования несоответствия, и он обычно не одобряется, поскольку несоответствие предназначено для описания свойства «физическое / конкретное / неизменяемое / и т. Д.». Однако иногда это необходимо. Например, если вы хотите записать несоответствие большой стереопары в 8-битном изображении, вам придется масштабировать значения, чтобы они поместились в 8-битный контейнер. Вы можете сделать это разными способами.

Один из способов масштабирования карты диспаратности - взять наибольшее значение абсолютного диспаратности и разделить все значения на коэффициент, который уменьшит это значение до максимального значения в вашем 8-битном мире со знаком (128). Этот метод легко масштабировать до исходного диапазона диспаратности с помощью простого множителя, но он, очевидно, может привести к снижению детализации из-за уменьшения шага, создаваемого делением. Например, если у меня есть изображение с диапазоном диспаратности от 50 до -200, это означает, что у меня есть 250 возможных значений диспаратности. Я могу разделить все значения на 200/128 = 1,5625. Это дает мне диапазон от 32 до -128 или 160 возможных значений несоответствия. Когда я снова масштабирую это значение с помощью умножения, я снова получаю от 50 до -200, но теперь в этом диапазоне есть только 160 возможных значений несоответствия.

Другой метод, использующий указанный выше диапазон диспаратности, - просто сместить диапазон. Общий диапазон составляет 250, наш 8-битный контейнер со знаком может содержать 256 значений, поэтому мы вычитаем 250-128 = 72 из всех значений, что дает нам новый диапазон от 122 до -128. Это позволяет нам сохранить все шаги несоответствия и вернуть точное входное изображение, просто добавив наш коэффициент сдвига обратно в изображение.

И наоборот, если у вас есть карта диспаратности с диапазоном от -5 до 10. Возможно, вы захотите расширить этот диапазон, включив в него значения субпиксельного диспаратности. Таким образом, вы можете масштабировать 10 до 128 и от -5 до -64. Это дает более широкий диапазон значений, но общее количество возможных значений будет меняться от кадра к кадру в зависимости от диапазона входного несоответствия.

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

person BHawk    schedule 25.05.2017
comment
Спасибо за четкий ответ, но в том случае, когда значение левой карты несоответствия равно 15, например (предположим, что это максимально возможное значение), значит, 15 представляет собой самую дальнюю метку от камеры? - person Raziel; 25.05.2017
comment
Карты диспаратности обычно не имеют дело с минимальными и максимальными значениями диспаратности. Они только сообщают, какова разница для каждого пикселя. Не существует стандарта масштабирования карт диспаратности для заполнения некоторого количества значений. Я добавлю подробности о масштабировании к своему ответу. - person BHawk; 25.05.2017