disparity

(Не рекомендуемый) карта Несоизмеримости между стереоизображениями

disparity не рекомендуется. Использование disparityBM или disparitySGM вместо этого. Для получения дополнительной информации см. Вопросы совместимости

Описание

пример

disparityMap = disparity(I1,I2) возвращает карту несоизмеримости, disparityMap, для пары стереоизображений, I1 и I2.

disparityMap = disparity(I1,I2,Name,Value) обеспечивает дополнительное управление для алгоритма несоизмеримости при помощи одного или нескольких Name,Value парные аргументы.

Примеры

свернуть все

Загрузите изображения и преобразуйте их в шкалу полутонов.

I1 = imread('scene_left.png');
I2 = imread('scene_right.png');

Покажите анаглиф стерео. Используйте красно-голубые стекла стерео, чтобы просмотреть изображение в 3-D.

figure
imshow(stereoAnaglyph(I1,I2));
title('Red-cyan composite view of the stereo images');

Figure contains an axes object. The axes object with title Red-cyan composite view of the stereo images contains an object of type image.

Вычислите карту несоизмеримости.

disparityRange = [-6 10];
disparityMap = disparity(rgb2gray(I1),rgb2gray(I2),'BlockSize',...
    15,'DisparityRange',disparityRange);

Отобразите карту несоизмеримости. Для лучшей визуализации используйте область значений несоизмеримости в качестве области значений отображения для imshow.

figure 
imshow(disparityMap,disparityRange);
title('Disparity Map');
colormap(gca,jet) 
colorbar

Figure contains an axes object. The axes object with title Disparity Map contains an object of type image.

Входные параметры

свернуть все

Введите изображение, на которое ссылаются как I1 соответствие камере 1, заданный в 2D шкале полутонов. Стереоизображения, I1 и I2, должен быть исправлен таким образом, что соответствующие точки расположены на тех же строках. Можно выполнить это исправление с rectifyStereoImages функция.

Можно улучшить скорость функции путем установки класса I1 и I2 к uint8, и количество столбцов, чтобы быть делимым 4. Введите отображает I1 и I2 должно быть действительным, конечным, и неразреженным. Они должны быть тем же классом.

Типы данных: uint8 | uint16 | int16 | single | double

Введите изображение, на которое ссылаются как I2 соответствие камере 2, заданный в 2D шкале полутонов. Входные изображения должны быть исправлены таким образом, что соответствующие точки расположены на тех же строках. Можно улучшить скорость функции путем установки класса I1 и I2 к uint8, и количество столбцов, чтобы быть делимым 4. Введите отображает I1 и I2 должно быть действительным, конечным, и неразреженным. Они должны быть тем же классом.

Типы данных: uint8 | uint16 | int16 | single | double

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Method', 'BlockMatching', задает 'Method' свойство быть установленным в 'BlockMatching'.

Алгоритм оценки несоизмеримости в виде разделенной запятой пары, состоящей из 'Method'и любой 'BlockMatching' или 'SemiGlobal'. Функция несоизмеримости реализует базисный блок, Соответствующий [1] и Полуглобальный Блок, Соответствующий [3] алгоритмы. В 'BlockMatching' метод, функция вычисляет несоизмеримость путем сравнения суммы абсолютных разностей (SAD) каждого блока пикселей в изображении. В 'SemiGlobal' метод сопоставления, функция дополнительно обеспечивает подобную несоизмеримость на соседних блоках. Это дополнительное ограничение приводит к более полной оценке несоизмеримости, чем в 'BlockMatching' метод.

Алгоритмы выполняют эти шаги:

  1. Вычислите меру контраста изображения при помощи фильтра Sobel.

  2. Вычислите несоизмеримость для каждого пикселя в I1.

  3. Отметьте элементы карты несоизмеримости, disparityMap, это не было вычислено надежно. Функциональное использование –realmaxединственный) отметить эти элементы.

Область значений несоизмеримости в виде разделенной запятой пары, состоящей из 'DisparityRange'и двухэлементный вектор. Двухэлементный вектор должен быть в формате [MinDisparity, MaxDisparity]. Оба элемента должны быть целым числом и могут быть отрицательными. MinDisparity и MaxDisparity должны быть в области значений [-image width, image width]. Различие между MaxDisparity и MinDisparity должно быть делимым 16. DisparityRange должно быть действительным, конечным, и неразреженным. Если камера раньше брала I1 был справа от камеры, используемой, чтобы взять I2, затем MinDisparity должен быть отрицательным.

Область значений несоизмеримости зависит от расстояния между этими двумя камерами и расстояния между камерами и предметом интереса. Увеличьте DisparityRange когда камеры далеко друг от друга, или объекты близко к камерам. Чтобы определить разумную несоизмеримость для вашей настройки, отобразите анаглиф стерео входных изображений в приложении Image Viewer и используйте инструмент Distance, чтобы измерить расстояния между парами соответствующих точек. Измените MaxDisparity, чтобы соответствовать измерению.

Размер квадратного блока в виде разделенной запятой пары, состоящей из 'BlockSize'и нечетное целое число в области значений [5,255]. Это наборы значений ширина для размера квадратного блока. Функция использует квадратный блок пикселей для сравнений между I1 и I2. BlockSize должно быть действительным, конечным, и неразреженным.

Контрастная пороговая область значений в виде разделенной запятой пары, состоящей из 'ContrastThreshold'и скалярное значение в области значений (0,1]. Контрастный порог задает допустимый диапазон контрастных значений. Увеличение этого параметра приводит к меньшему количеству пикселей, отмечаемых как ненадежное. ContrastThreshold должно быть действительным, конечным, и неразреженным.

Минимальное значение уникальности в виде разделенной запятой пары, состоящей из 'UniquenessThreshold'и неотрицательное целое число. Увеличение этого параметра приводит к функции, отмечающей больше ненадежных пикселей. Когда значение уникальности для пикселя является низким, несоизмеримость, вычисленная для него, менее надежна. Устанавливание порога к 0 отключает пороговую обработку уникальности. UniquenessThreshold должно быть действительным, конечным, и неразреженным.

Функция задает уникальность как отношение оптимальной оценки несоизмеримости и менее оптимальной оценки несоизмеримости. Например:

Позвольте K быть лучшей предполагаемой несоизмеримостью и позволить V быть соответствующим SAD (Сумма Абсолютной разности) значение.
Рассмотрите V как наименьшее значение SAD в целой области значений несоизмеримости и v как наименьшее значение SAD в целой области значений несоизмеримости, исключая K, K-1 и K +1.
Если v <V * (1+0.01*UniquenessThreshold), затем функция отмечает несоизмеримость для пикселя как ненадежную.

Максимальное расстояние для слева направо отображает проверку между двумя точками в виде разделенной запятой пары, состоящей из 'DistanceThreshold'и неотрицательное целое число. Увеличение этого параметра приводит к меньшему количеству пикселей, отмечаемых как ненадежное. С другой стороны, когда вы уменьшаете значение порога расстояния, вы увеличиваете надежность карты несоизмеримости. Можно установить этот параметр на пустой матричный [] отключить его. DistanceThreshold должно быть действительным, конечным, и неразреженным.

Порог расстояния задает максимальное расстояние между точкой в I1 и та же точка найдена от I2. Функция находит расстояние и отмечает пиксель следующим образом:

Позвольте p 1 быть точкой в изображении I 1.
Шаг 1: функциональные поиски указывают, что p 1 лучше всего совпадает в изображении с I 2 (слева направо проверка), и находит точку p 2.
Шаг 2: функциональные поиски p 2 лучше всего совпадают в изображении с I 1 (справа налево проверка), и находит точку p 3.
Если поиск возвращает расстояние между p 1 и p 3 больших, чем DistanceThreshold, функция отмечает несоизмеримость для точки p 1 как ненадежную.

Минимальный порог структуры в виде разделенной запятой пары, состоящей из 'TextureThreshold'и скалярное значение в области значений [0, 1). Порог структуры задает минимальное значение структуры для пикселя, чтобы быть надежным. Чем ниже структура для блока пикселей, тем менее надежна вычисленная несоизмеримость для пикселей. Увеличение этого параметра приводит к большему количеству пикселей, отмечаемых как ненадежное. Можно установить этот параметр на 0 отключить его. Этот параметр применяется только, когда вы устанавливаете Method к 'BlockMatching'.

Структура пикселя задана как сумма влажного контраста, вычисленного по BlockSize- BlockSize окно вокруг пикселя. Функция считает несоизмеримость вычисленной для пикселя ненадежный и отмечает его, когда структура падает ниже значения, заданного:

Texture <X* TextureThreshold * BlockSize2

X представляет максимальное значение, поддержанное классом входных изображений, I1 и I2.

TextureThreshold должно быть действительным, конечным, и неразреженным.

Выходные аргументы

свернуть все

Карта несоизмеримости для пары стереоизображений, возвращенных как M-by-N 2D полутоновое изображение. Функция возвращает карту несоизмеримости с тем же размером, как вход отображает, I1 и I2. Каждый элемент выхода задает несоизмеримость для соответствующего пикселя в ссылках изображений как I1. Возвращенные значения несоизмеримости округлены к 116пиксель th.

Функция вычисляет карту несоизмеримости на трех шагах:

  1. Вычислите меру контраста изображения при помощи фильтра Sobel.

  2. Вычислите несоизмеримость для каждого из пикселей при помощи соответствия блока и суммы абсолютных разностей (SAD).

  3. Опционально, отметьте пиксели, которые содержат ненадежные значения несоизмеримости. Функция устанавливает пиксель на значение, возвращенное -realmaxединственный').

Советы

Если ваша получившаяся карта несоизмеримости выглядит шумной, попытайтесь изменить DisparityRange. Область значений несоизмеримости зависит от расстояния между этими двумя камерами и расстояния между камерами и предметом интереса. Увеличьте DisparityRange когда камеры далеко друг от друга, или объекты близко к камерам. Чтобы определить разумную несоизмеримость для вашей настройки, отобразите анаглиф стерео входных изображений в приложении Image Viewer и используйте инструмент Distance, чтобы измерить расстояния между парами соответствующих точек. Измените MaxDisparity, чтобы соответствовать измерению.

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2019a

Ссылки

[1] Konolige, K., Маленькие Системы Видения: Оборудование и Реализация, Продолжения 8-го Международного Симпозиума в Автоматизированном Исследовании, страницах 203-212, 1997.

[2] Брадский, G. и А. Кэехлер, изучение OpenCV: компьютерное зрение с библиотекой OpenCV, О'Райли, Севастополем, CA, 2008.

[3] Hirschmuller, H., точная и эффективная обработка стерео полуглобальной переменной, соответствующей и взаимной информацией, международной конференцией по вопросам компьютерного зрения и распознавания образов, 2005.

Расширенные возможности

Представленный в R2011b