Вычислите соответствие блока использования карты несоизмеримости
disparityMap = disparityBM(I1,I2)disparityMap = disparityBM(I1,I2,Name,Value) вычисляет карту несоизмеримости из пары исправленных стереоизображений disparityMap = disparityBM(I1,I2)I1 и I2, при помощи метода сопоставления блока. Чтобы знать больше об исправлении стереоизображений, смотрите Исправление Изображений.
задает опции с помощью одного или нескольких аргументов пары "имя-значение".disparityMap = disparityBM(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 = disparityBM(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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
disparityBM(I1,I2,'DisparityRange',[0 64])'DisparityRange' — Область значений несоизмеримости[0 64] (значение по умолчанию) | двухэлементный векторОбласть значений несоизмеримости, заданной как пара, разделенная запятой, состоящая из 'DisparityRange' и двухэлементный вектор формы [MinDisparity
MaxDisparity]. MinDisparity является минимальной несоизмеримостью, и MaxDisparity является максимальной несоизмеримостью. Условия, которые должна удовлетворить эта область значений, зависят от типа входных изображений.
Если входные изображения являются полутоновыми изображениями ширины N, то:
MinDisparity и MaxDisparity должны быть целыми числами в области значений (–N, N).
Различие между MaxDisparity и значениями MinDisparity должно быть делимым 16 и меньше, чем ширина входных изображений.
Если входные изображения являются объектами gpuArray ширины N, то:
Значение MinDisparity должно быть равным нулю.
Значение MaxDisparity должно быть в области значений (16, N). Если N больше, чем 256, то MaxDisparity должен быть выбран в качестве меньше чем или равного 256.
Различие между MaxDisparity и значениями MinDisparity должно быть делимым 16.
Значением по умолчанию для области значений несоизмеримости является [0 64]. Для получения дополнительной информации о выборе области значений несоизмеримости смотрите Range of Disparity Выбора.
'BlockSize' — Размер блока в квадрате15 (значение по умолчанию) | нечетное целое числоРазмер блока в квадрате, заданного как пара, разделенная запятой, состоящая из 'BlockSize' и нечетного целого числа. Это значение задает ширину окна поиска, используемого для пикселей соответствия блока в исправленном изображении стереопары. Область значений для блока размера в квадрате зависит от типа входных изображений.
Если входные изображения являются полутоновыми изображениями, значение 'BlockSize' должно быть нечетным целым числом в области значений [5, 255].
Если входные изображения являются объектами gpuArray, значение 'BlockSize' должно быть нечетным целым числом в области значений [5, 51].
Значение по умолчанию равняется 15.
'ContrastThreshold' — Область значений контрастного порога0.5 (значение по умолчанию) | скаляр в области значений (0, 1]Область значений контрастного порога, заданного как пара, разделенная запятой, состоящая из 'ContrastThreshold' и скалярного значения в области значений (0, 1]. Контрастный порог задает допустимый диапазон контрастных значений. Если контрастное значение пикселя в ссылочном изображении ниже контрастного порога, то несоизмеримость, вычисленная для того пикселя, рассматривается unreliable. Увеличение этого параметра приводит к несоизмеримости для меньшего количества пикселей, отмечаемых как ненадежное.
'UniquenessThreshold' — Минимальное значение уникальности15 (значение по умолчанию) | неотрицательное целое числоМинимальное значение уникальности, заданной как пара, разделенная запятой, состоящая из 'UniquenessThreshold' и неотрицательного целого числа.
Функция отмечает предполагаемое значение несоизмеримости K для пикселя как ненадежное, если:
v <V × (1+0.01×UniquenessThreshold),
где V является суммой абсолютной разности (SAD), соответствующий значению несоизмеримости K. v является наименьшим значением SAD в целой области значений несоизмеримости, исключая K, K –1 и K +1.
Увеличение значения UniquenessThreshold приводит к значениям несоизмеримости для большего количества пикселей, отмечаемых как ненадежное. Чтобы отключить использование порога уникальности, установите это значение к [].
Если входные изображения являются объектами gpuArray, то аргумент пары "имя-значение" 'UniquenessThreshold' не применяется.
'DistanceThreshold' — Максимальное расстояние между сопряженными пикселями в изображении стереопары[] (отключенное) (значение по умолчанию) | неотрицательное целое числоМаксимальное расстояние между сопряженными пикселями в изображении стереопары, заданном как пара, разделенная запятой, состоящая из 'DistanceThreshold' и неотрицательного целого числа. Порог расстояния задает максимальное расстояние между пикселем в I1 и тем же пикселем, найденным в I2.
Для пикселя p 1 в ссылочном изображении I1, функция выполняет слева направо проверка, чтобы найти ее лучший пиксель соответствия p 2 в изображении I2. Для пикселя p 2, функция выполняет справа налево проверка, чтобы найти ее лучший пиксель соответствия p 3 в ссылочном изображении I1. Если расстояние между p1 и p3 больше, чем DistanceThreshold, функция отмечает несоизмеримость для пикселя p1 в ссылочном изображении I1 как ненадежную.
Увеличение значения DistanceThreshold приводит к значениям несоизмеримости для меньшего количества пикселей, отмечаемых как ненадежное. С другой стороны, уменьшая значение DistanceThreshold, увеличивает надежность карты несоизмеримости. Чтобы отключить использование порога расстояния, установите это значение к [].
Если входные изображения являются объектами gpuArray, то аргумент пары "имя-значение" 'DistanceThreshold' не применяется.
'TextureThreshold' — Минимальный порог структуры0.0002 (значение по умолчанию) | скалярное значение в области значений [0, 1)Минимальный порог структуры, заданный как пара, разделенная запятой, состоящая из 'TextureThreshold' и скалярного значения в области значений [0, 1).
Структура пикселя задана как сумма влажного контраста, вычисленного по BlockSize-by-BlockSize окно вокруг пикселя. Порог структуры задает минимальное значение структуры для пикселя, чтобы иметь надежное значение несоизмеримости. Функция рассматривает несоизмеримость для пикселя как ненадежную, если:
texture <intensitymax ×TextureThreshold×BlockSize2,
где texture является структурой пикселя. intensitymax является максимальным значением, поддержанным по условию, тип входа отображает I1 и I2.
Увеличение значения 'TextureThreshold' приводит к значениям несоизмеримости для большего количества пикселей, отмечаемых как ненадежное. Чтобы отключить использование порога структуры, установите это значение к [].
disparityMap — Карта несоизмеримостиgpuArrayКарта несоизмеримости для исправленного изображения стереопары, возвращенного как 2D полутоновое изображение или объект gpuArray. Функция возвращает карту несоизмеримости с тем же размером, как вход отображает I1 и I2. Каждое значение в этом выводе относится к смещению между сопряженными пикселями в изображении стереопары. Для получения дополнительной информации о вычислении карты несоизмеримости, см., что Вычислительная Карта Несоизмеримости Использует Соответствие Блока.
Типы данных: single
Вход отображает I1, и I2 должен быть исправлен прежде, чем вычислить карту несоизмеримости. Исправление гарантирует, что соответствующие точки в изображении стереопары находятся на тех же строках. Можно исправить входное изображение стереопары при помощи функции rectifyStereoImages. Ссылочное изображение должно быть тем же самым для исправления и вычисления карты несоизмеримости.
Область значений несоизмеримости должна быть выбрана, чтобы покрыть минимум и максимальную сумму горизонтального сдвига между соответствующими пикселями в исправленном изображении стереопары. Можно определить аппроксимированные горизонтальные значения сдвига от анаглифа стерео изображения стереопары. Вычислите анаглиф стерео исправленных изображений при помощи функции stereoAnaglyph. Отобразите анаглиф стерео в Image Viewer при помощи функции imtool. Чтобы измерить сумму горизонтального сдвига между соответствующими точками в изображении стереопары, выберите Measure Distance из меню Tools в Image Viewer. Выберите минимальные и максимальные значения несоизмеримости для области значений несоизмеримости на основе этого измерения.
Например, эта фигура отображает анаглиф стерео исправленного изображения стереопары и горизонтальных значений сдвига, измеренных между соответствующими точками в изображении стереопары. Минимальные и максимальные значения сдвига вычисляются как 8 и 31 соответственно. На основе этих значений область значений несоизмеримости может быть выбрана в качестве [0, 48].

Функция вычисляет карту несоизмеримости путем выполнения этих шагов:
Вычислите несоизмеримость для каждого пикселя при помощи метода сопоставления блока, данного в [1].
Для центрального процессора — сумма абсолютной разности (SAD) используется в качестве функции стоимости в соответствии блока. Функция стоимости оценивает смещение между пикселями в исправленном изображении стереопары.
Для графического процессора — сумма различия в квадрате (SSD) используется в качестве функции стоимости в соответствии блока. Функция стоимости оценивает смещение между пикселями в исправленном изображении стереопары.
Опционально, отметьте пиксели для ненадежности на основе ContrastThreshold, UniquenessThreshold, DistanceThreshold и пар "имя-значение" TextureThreshold. Функция устанавливает ненадежные значения несоизмеримости к NaN.
[1] Konolige, K. "Маленькие Системы Видения: Оборудование и Реализация". В Продолжениях 8-го Международного Симпозиума в Автоматизированном Исследовании, стр 203–212. 1997.
[2] Брадский, G. и А. Кэехлер. Изучение OpenCV: компьютерное зрение с библиотекой OpenCV. Севастополь, CA: O'Reilly Media, Inc. 2008.
Указания и ограничения по применению:
Версия графического процессора этой функции работает только над NVIDIA графические процессоры. Максимальное значение несоизмеримости, поддержанное для объектов gpuArray, 256.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.