exponenta event banner

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

Figure contains an axes. The axes with title Red-Cyan composite view of the rectified stereo pair image contains an object of type 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

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

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

свернуть все

Входное изображение, на которое ссылается I1 соответствие камере 1, определенный как 2-е изображение оттенков серого или a gpuArray (Панель параллельных вычислений). Функция использует это изображение в качестве опорного для вычисления карты несоответствия. Входные изображения I1 и I2 должно быть реальным, конечным и непроверенным. Также, I1 и I2 должны иметь одинаковый размер и одинаковый тип данных.

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

Входное изображение, на которое ссылается I2 соответствие камере 2, определенный как 2-е изображение оттенков серого или a 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]. Дополнительные сведения о выборе диапазона различий см. в разделе Выбор диапазона различий.

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

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

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

v < V × (1 + 0,01 ×UniquenessThreshold),

где V - расстояние Хэмминга, соответствующее значению рассогласования K. v - наименьшее значение расстояния Хэмминга во всем диапазоне рассогласования, исключая K, K-1 и K + 1.

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

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

свернуть все

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

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

Подробнее

свернуть все

Исправление изображения

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

Алгоритмы

свернуть все

Выбор диапазона различий

Диапазон различий должен быть выбран таким образом, чтобы охватить минимальную и максимальную величину горизонтального сдвига между соответствующими пикселями в выпрямленном изображении стереопары. Можно определить приблизительные значения горизонтального сдвига из стереоанаглифа изображения стереопары. Вычислите стереоанаглиф исправленных изображений с помощью stereoAnaglyph функция. Отображение стереоанаглифа в средстве просмотра изображений с помощью imtool функция. Чтобы измерить величину горизонтального сдвига между соответствующими точками на изображении стереопары, выберите команду «Измерить расстояние» в меню «Сервис» в окне «Просмотр изображений». Выберите минимальное и максимальное значения диспаратности для диапазона диспаратности на основе этого измерения.

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

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

  1. Преобразование результатов переписи исправленного изображения стереопары.

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

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

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

Ссылки

[1] Хиршмуллер, Н. «Точная и эффективная стереообработка путем полуглобального согласования и взаимной информации». В материалах Конференции IEEE по компьютерному зрению и распознаванию образов (CVPR), стр. 807-814. Сан-Диего, Калифорния: IEEE, 2005.

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

..
Представлен в R2019a