Вычислите карту несоизмеримости посредством полуглобального соответствия
вычисляет карту несоизмеримости из пары исправленных стереоизображений 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
— Введите изображение 1gpuArray
объектВведите изображение, на которое ссылаются как I1
соответствие камере 1, заданный как 2D полутоновое изображение или gpuArray
объект. Функция использует это изображение в качестве ссылочного изображения для вычисления карты несоизмеримости. Вход отображает I1
и I2
должно быть действительным, конечным, и неразреженным. Кроме того, I1
и I2
должно быть одного размера и совпадающий тип данных.
Типы данных: single
| double
| int16
| uint8
| uint16
I2
— Введите изображение 2gpuArray
объектВведите изображение, на которое ссылаются как 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'
— Область значений несоизмеримости
(значение по умолчанию) | двухэлементный векторОбласть значений несоизмеримости, заданной как разделенная запятой пара, состоящая из 'DisparityRange'
и двухэлементный вектор формы [MinDisparity
MaxDisparity]. MinDisparity является минимальной несоизмеримостью, и MaxDisparity является максимальной несоизмеримостью.
Для входных изображений ширины N, MinDisparity и MaxDisparity должны быть целыми числами в области значений (–N, N). Различие между MaxDisparity и значениями MinDisparity должно быть делимым 8 и должно быть меньше чем или равным 128.
Значением по умолчанию для области значений несоизмеримости является [0 128]
. Для получения дополнительной информации о выборе области значений несоизмеримости смотрите Range of Disparity Выбора.
Типы данных: integers
'UniquenessThreshold'
— Минимальное значение уникальности
(значение по умолчанию) | неотрицательное целое числоМинимальное значение уникальности, заданной как разделенная запятой пара, состоящая из 'UniquenessThreshold'
и неотрицательное целое число.
Функция отмечает предполагаемое значение несоизмеримости K для пикселя как ненадежное, если:
v <V × (1+0.01×UniquenessThreshold
),
где V является Расстояние Хемминга, соответствующее значению несоизмеримости K. v является наименьшим значением Расстояния Хемминга в целой области значений несоизмеримости, исключая K, K –1 и K +1.
Увеличение значения UniquenessThreshold
результаты в значениях несоизмеримости для большего количества пикселей, отмечаемых как ненадежный. Чтобы отключить использование порога уникальности, установите это значение к 0.
disparityMap
— Карта несоизмеримостиgpuArray
объектКарта несоизмеримости для исправленного изображения стереопары, возвращенного как 2D полутоновое изображение или gpuArray
объект. Функция возвращает карту несоизмеримости с тем же размером, как вход отображает I1
и I2
. Каждое значение в этом выходе относится к смещению между сопряженными пикселями в изображении стереопары. Для получения дополнительной информации о вычислении карты несоизмеримости, см., что Вычислительная Карта Несоизмеримости Использует Полуглобальное Соответствие.
Типы данных: single
Вход отображает I1
и I2
должен быть исправлен прежде, чем вычислить карту несоизмеримости. Исправление гарантирует, что соответствующие точки в изображении стереопары находятся на тех же строках. Можно исправить входное изображение стереопары при помощи rectifyStereoImages
функция. Ссылочное изображение должно быть тем же самым для исправления и расчета карты несоизмеримости.
Область значений несоизмеримости должна быть выбрана, чтобы покрыть минимум и максимальную сумму горизонтального сдвига между соответствующими пикселями в исправленном изображении стереопары. Можно определить аппроксимированные горизонтальные значения сдвига из анаглифа стерео изображения стереопары. Вычислите анаглиф стерео исправленных изображений при помощи stereoAnaglyph
функция. Отобразите анаглиф стерео в Image Viewer при помощи imtool
функция. Чтобы измерить сумму горизонтального сдвига между соответствующими точками в изображении стереопары, выберите Measure Distance из меню Tools в Image Viewer. Выберите минимальные и максимальные значения несоизмеримости для области значений несоизмеримости на основе этого измерения.
Например, этот рисунок отображает анаглиф стерео исправленного изображения стереопары и горизонтальных значений сдвига, измеренных между соответствующими точками в изображении стереопары. Минимальные и максимальные значения сдвига вычисляются как 8 и 31 соответственно. На основе этих значений область значений несоизмеримости может быть выбрана в качестве [0, 48].
Вычислите преобразование переписи исправленного изображения стереопары.
Вычислите Расстояние Хемминга между пикселями в преобразованном изображении переписи, чтобы получить матрицу стоимости соответствия.
Вычислите мудрую пикселем несоизмеримость из соответствия с матрицей стоимости при помощи полуглобального метода сопоставления, данного в [1].
Опционально, отметьте пиксели для ненадежности на основе UniquenessThreshold
пара "имя-значение". Функция устанавливает значения несоизмеримости ненадежных пикселей к NaN
.
[1] Hirschmuller, H. "Точная и Эффективная Обработка Стерео Полуглобальной переменной, Соответствующей и Взаимной информацией". В Продолжениях Конференции по IEEE по Компьютерному зрению и Распознаванию образов (CVPR), стр 807-814. Сан-Диего, CA: IEEE, 2005.
Указания и ограничения по применению:
Версия графического процессора этой функции работает только над NVIDIA графические процессоры.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.