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');

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

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

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

свернуть все

Введите изображение, на которое ссылаются как 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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 когда камеры далеко друг от друга, или объекты близко к камерам. Чтобы определить разумную несоизмеримость для вашей настройки, отобразите анаглиф стерео входных изображений в imtool и используйте инструмент 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 когда камеры далеко друг от друга, или объекты близко к камерам. Чтобы определить разумную несоизмеримость для вашей настройки, отобразите анаглиф стерео входных изображений в imtool и используйте инструмент Distance, чтобы измерить расстояния между парами соответствующих точек. Измените MaxDisparity, чтобы соответствовать измерению.

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

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

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

Ссылки

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

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

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

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

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

Для просмотра документации необходимо авторизоваться на сайте