disparitySGM

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

Описание

пример

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

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-D полутоновое изображение или gpuArray (Parallel Computing Toolbox) объект. Функция использует это изображение в качестве ссылки изображения для вычисления карты расхождения. Входные изображения I1 и I2 должно быть вещественным, конечным и нечетким. Кроме того, I1 и I2 должен иметь тот же размер и совпадающий тип данных.

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

Входное изображение, указанное как I2 соответствующий камере 2, заданный как 2-D полутоновое изображение или gpuArray (Parallel Computing Toolbox) объект. Входные изображения 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 <<reservedrangesplaceholder1> × (1+0.01× UniquenessThreshold),

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

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

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

свернуть все

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

Типы данных: 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. Сан-Диего, Калифорния: IEEE, 2005.

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

..
Введенный в R2019a