disparitySGM

Вычислите карту несоизмеримости посредством полуглобального соответствия

Описание

пример

disparityMap = disparitySGM(I1,I2) вычисляет карту несоизмеримости из пары исправленных стереоизображений I1 и I2, при помощи метода полуглобального соответствия (SGM). Чтобы знать больше об исправлении стереоизображений, смотрите Исправление Изображений.

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

Примеры

свернуть все

Загрузите исправленное изображение стереопары.

I1 = imread('rectified_left.png');
I2 = imread('rectified_right.png');

Создайте анаглиф стерео исправленного изображения стереопары и отобразите его. Можно просмотреть изображение в 3-D при помощи красно-голубых стекол стерео.

A = stereoAnaglyph(I1,I2);
figure
imshow(A)
title('Red-Cyan composite view of the rectified stereo pair image')

Преобразуйте исправленные входные цветные изображения в полутоновые изображения.

J1 = rgb2gray(I1);
J2 = rgb2gray(I2);

Вычислите карту несоизмеримости посредством полуглобального соответствия. Укажите диапазон несоизмеримости как [0, 48], и минимальное значение уникальности как 20.

disparityRange = [0 48];
disparityMap = disparitySGM(J1,J2,'DisparityRange',disparityRange,'UniquenessThreshold',20);

Отобразите карту несоизмеримости. Установите область значений отображения на то же значение как область значений несоизмеримости.

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

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

свернуть все

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

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

Введите изображение, на которое ссылаются как I2 соответствие камере 2, заданный как 2D полутоновое изображение или gpuArray объект. Вход отображает I1 и I2 должно быть действительным, конечным, и неразреженным. I1 и I2 должно быть одного размера и совпадающий тип данных.

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

Аргументы в виде пар имя-значение

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

Пример: disparitySGM(I1,I2,'DisparityRange',[0 64])

Область значений несоизмеримости, заданной как разделенная запятой пара, состоящая из 'DisparityRange' и двухэлементный вектор формы [MinDisparity MaxDisparity]. MinDisparity является минимальной несоизмеримостью, и MaxDisparity является максимальной несоизмеримостью.

Для входных изображений ширины N, MinDisparity и MaxDisparity должны быть целыми числами в области значений (–N, N). Различие между MaxDisparity и значениями MinDisparity должно быть делимым 8 и должно быть меньше чем или равным 128.

Значением по умолчанию для области значений несоизмеримости является [0 128]. Для получения дополнительной информации о выборе области значений несоизмеримости смотрите Range of Disparity Выбора.

Типы данных: integers

Минимальное значение уникальности, заданной как разделенная запятой пара, состоящая из 'UniquenessThreshold' и неотрицательное целое число.

Функция отмечает предполагаемое значение несоизмеримости K для пикселя как ненадежное, если:

v <V × (1+0.01×UniquenessThreshold),

где V является Расстояние Хемминга, соответствующее значению несоизмеримости K. v является наименьшим значением Расстояния Хемминга в целой области значений несоизмеримости, исключая K, K –1 и K +1.

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

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

свернуть все

Карта несоизмеримости для исправленного изображения стереопары, возвращенного как 2D полутоновое изображение или gpuArray объект. Функция возвращает карту несоизмеримости с тем же размером, как вход отображает I1 и I2. Каждое значение в этом выходе относится к смещению между сопряженными пикселями в изображении стереопары. Для получения дополнительной информации о вычислении карты несоизмеримости, см., что Вычислительная Карта Несоизмеримости Использует Полуглобальное Соответствие.

Типы данных: single

Больше о

свернуть все

Отобразите исправление

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

Алгоритмы

свернуть все

Выбор области значений несоизмеримости

Область значений несоизмеримости должна быть выбрана, чтобы покрыть минимум и максимальную сумму горизонтального сдвига между соответствующими пикселями в исправленном изображении стереопары. Можно определить аппроксимированные горизонтальные значения сдвига из анаглифа стерео изображения стереопары. Вычислите анаглиф стерео исправленных изображений при помощи stereoAnaglyph функция. Отобразите анаглиф стерео в Image Viewer при помощи imtool функция. Чтобы измерить сумму горизонтального сдвига между соответствующими точками в изображении стереопары, выберите Measure Distance из меню Tools в Image Viewer. Выберите минимальные и максимальные значения несоизмеримости для области значений несоизмеримости на основе этого измерения.

Например, этот рисунок отображает анаглиф стерео исправленного изображения стереопары и горизонтальных значений сдвига, измеренных между соответствующими точками в изображении стереопары. Минимальные и максимальные значения сдвига вычисляются как 8 и 31 соответственно. На основе этих значений область значений несоизмеримости может быть выбрана в качестве [0, 48].

Вычисление карты несоизмеримости Используя полуглобальное соответствие

  1. Вычислите преобразование переписи исправленного изображения стереопары.

  2. Вычислите Расстояние Хемминга между пикселями в преобразованном изображении переписи, чтобы получить матрицу стоимости соответствия.

  3. Вычислите мудрую пикселем несоизмеримость из соответствия с матрицей стоимости при помощи полуглобального метода сопоставления, данного в [1].

  4. Опционально, отметьте пиксели для ненадежности на основе UniquenessThreshold пара "имя-значение". Функция устанавливает значения несоизмеримости ненадежных пикселей к NaN.

Ссылки

[1] Hirschmuller, H. "Точная и Эффективная Обработка Стерео Полуглобальной переменной, Соответствующей и Взаимной информацией". В Продолжениях Конференции по IEEE по Компьютерному зрению и Распознаванию образов (CVPR), стр 807-814. Сан-Диего, CA: IEEE, 2005.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2019a