Вычислите карту несоизмеримости посредством полуглобального соответствия
вычисляет карту несоизмеримости из пары исправленных стереоизображений 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 полутонового изображения или a gpuArray
Объект (Parallel Computing Toolbox). Функция использует это изображение в качестве ссылочного изображения для вычисления карты несоизмеримости. Вход отображает I1
и I2
должно быть действительным, конечным, и неразреженным. Кроме того, I1
и I2
должно быть одного размера и совпадающий тип данных.
Типы данных: single
| double
| int16
| uint8
| uint16
I2
— Введите изображение 2gpuArray
объектВведите изображение, на которое ссылаются как I2
соответствие камере 2 в виде 2D полутонового изображения или a 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'
— Область значений несоизмеримости
(значение по умолчанию) | двухэлементный векторОбласть значений несоизмеримости в виде разделенной запятой пары, состоящей из '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.
Аргументы пары "имя-значение", 'DisparityRange'
и 'UniquenessThreshold'
должны быть константы времени компиляции.
Генерация кода поддержек только в типовом MATLAB Host Computer
целевая платформа.
Указания и ограничения по применению:
Вход отображает I1
и I2
должен быть исправлен, тот же размер, и совпадающего типа данных.
Генерация кода графического процессора поддерживает 'UniquenessThreshold'
и 'disparityMap'
пары "имя-значение".
Для очень больших входных параметров требования к памяти алгоритма могут превысить пределы устройства графического процессора. В таких случаях полагайте, что сокращение входного размера возобновляет генерацию кода.
Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.