несоизмеримость

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

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

Синтаксис

disparityMap = disparity(I1,I2)
disparityMap = disparity(I1,I2,Name,Value)

Описание

пример

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

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

Область значений несоизмеримости, заданной как пара, разделенная запятой, состоящая из '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-by-BlockSize окно вокруг пикселя. Функция считает несоизмеримость вычисленной для пикселя ненадежный и отмечает его, когда структура падает ниже значения, заданного:

Texture <X* TextureThreshold * BlockSize 2

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

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

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

свернуть все

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

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

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

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

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

Советы

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

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

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

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

Ссылки

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

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

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

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

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