matchFeatures

Найдите соответствующие признаки

Описание

пример

indexPairs = matchFeatures(features1,features2) возвращает индексы соответствующих функций в двух входных наборах функций. Входной функцией должен быть любой binaryFeatures объекты или матрицы.

[indexPairs,matchmetric] = matchFeatures(features1,features2) также возвращает расстояние между соответствующими функциями, индексированными indexPairs.

[indexPairs,matchmetric] = matchFeatures(features1,features2,Name,Value) включает дополнительные опции, заданные одним или несколькими Name,Value парные аргументы.

Примеры

свернуть все

Найдите соответствующие точки интереса между парой изображений с помощью локального neighbhorhoods и алгоритмом Харриса.

Считайте стереоизображения.

I1 = rgb2gray(imread('viprectification_deskLeft.png'));
I2 = rgb2gray(imread('viprectification_deskRight.png'));

Найдите углы.

points1 = detectHarrisFeatures(I1);
points2 = detectHarrisFeatures(I2);

Извлеките функции окружения.

[features1,valid_points1] = extractFeatures(I1,points1);
[features2,valid_points2] = extractFeatures(I2,points2);

Совпадайте с функциями.

indexPairs = matchFeatures(features1,features2);

Получите местоположения соответствующих точек для каждого изображения.

matchedPoints1 = valid_points1(indexPairs(:,1),:);
matchedPoints2 = valid_points2(indexPairs(:,2),:);

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

figure; showMatchedFeatures(I1,I2,matchedPoints1,matchedPoints2);

Используйте SURF локальная функция анализатора, чтобы найти соответствующие точки между двумя изображениями, которые вращаются и масштабируются друг относительно друга.

Считайте два изображения.

I1 = imread('cameraman.tif');
I2 = imresize(imrotate(I1,-20),1.2);

Найдите функции SURF.

points1 = detectSURFFeatures(I1);
points2 = detectSURFFeatures(I2);

Извлеките функции.

[f1,vpts1] = extractFeatures(I1,points1);
[f2,vpts2] = extractFeatures(I2,points2);

Получите местоположения совпадающих точек.

indexPairs = matchFeatures(f1,f2) ;
matchedPoints1 = vpts1(indexPairs(:,1));
matchedPoints2 = vpts2(indexPairs(:,2));

Отобразите соответствующие точки. Данные все еще включают несколько выбросов, но вы видите эффекты вращения и масштабирующийся на отображении совпадающих функций.

figure; showMatchedFeatures(I1,I2,matchedPoints1,matchedPoints2);
legend('matched points 1','matched points 2');

Входные параметры

свернуть все

Функции устанавливают 1, заданный как binaryFeatures возразите или M1-by-N матрица. Матрица содержит функции M1, и N соответствует длине каждого характеристического вектора. Можно получить binaryFeatures объект с помощью extractFeatures функция с быстрой сетчаткой keypoint (FREAK), Ориентированный FAST и Вращаемый BRIEF (ORB) или метод дескриптора бинарного устойчивого инвариантного масштабируемого keypoints (BRISK).

Функции устанавливают 2, заданный как binaryFeatures возразите или M2-by-N матрица. Матрица содержит функции M2, и N соответствует длине каждого характеристического вектора. Можно получить binaryFeatures объект с помощью extractFeatures функция с быстрой сетчаткой keypoint (FREAK), Ориентированный FAST и Вращаемый BRIEF (ORB) или метод дескриптора бинарного устойчивого инвариантного масштабируемого keypoints (BRISK).

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Metric', 'SSD' задает сумму различий в квадрате для метрики соответствия функции.

Метод сопоставления, заданный как разделенная запятой пара, состоящая из 'Method'и любой 'Exhaustive' или 'Approximate'. Метод задает как самые близкие соседи между features1 и features2 найдены. Два характеристических вектора соответствуют, когда расстояние между ними меньше порога, установленного MatchThreshold параметр.

'Exhaustive'

Вычислите попарное расстояние между характеристическими векторами в features1 и features2.

'Approximate'

Используйте эффективный аппроксимированный самый близкий соседний поиск. Используйте этот метод в больших наборах функций. [3]

Соответствие с пороговым порогом, заданным как разделенная запятой пара, состоящая из 'MatchThreshold'и скалярное процентное значение в области значений (0,100]. Значения по умолчанию установлены в любой 10.0 для бинарных характеристических векторов или к 1.0 для небинарных характеристических векторов. Можно использовать порог соответствия в выборе самых сильных соответствий. Порог представляет процент расстояния от идеальной пары.

Два характеристических вектора соответствуют, когда расстояние между ними меньше порога, установленного MatchThreshold. Функция отклоняет соответствие, когда расстояние между функциями больше значения MatchThreshold. Увеличьте значение, чтобы возвратить больше соответствий.

Входные параметры, которые являются binaryFeatures объекты обычно требуют большего значения для порога соответствия. extractFeatures функция возвращает binaryFeatures объекты при извлечении FREAK, ORB или дескрипторов BRISK.

Порог отношения, заданный как разделенная запятой пара, состоящая из 'MaxRatio'и скалярное значение отношения в области значений (0,1]. Используйте макс. отношение в отклонении неоднозначных соответствий. Увеличьте это значение, чтобы возвратить больше соответствий.

Покажите соответствие с метрикой, заданной как разделенная запятой пара, состоящая из 'Metric'и любой 'SAD' или 'SSD'.

'SAD'Сумма абсолютных разностей
'SSD'Сумма различий в квадрате

Это свойство применяется когда входные наборы функций, features1 и features2, не binaryFeatures объекты. Когда вы задаете функции как binaryFeatures объекты, функция использует Расстояние Хемминга, чтобы вычислить метрику подобия.

Уникальные соответствия, заданные как разделенная запятой пара, состоящая из 'Unique'и любой false или true. Установите это значение к true возвратить только уникальные соответствия между features1 и features2.

Когда вы устанавливаете Unique к false, функция возвращает все соответствия между features1 и features2. Несколько функций в features1 может соответствовать к одной функции в features2.

Когда вы устанавливаете Unique к true, функция выполняет прямое обратное соответствие, чтобы выбрать уникальное соответствие. После соответствия с features1 к features2, это совпадает с features2 к features1 и сохраняет лучшее соответствие.

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

свернуть все

Индексы соответствующих функций между двумя входными наборами функций, возвращенными как P-by-2 матрица количества P индексов. Каждая пара индекса соответствует совпадающей функции между features1 и features2 входные параметры. Первый элемент индексирует функцию в features1. Второй элемент индексирует соответствующую функцию в features2.

Расстояние между соответствием с функциями, возвращенными как p-by-1 вектор. Значение расстояний основано на выбранной метрике. Каждый i th элемент в matchmetric соответствует i th строка в indexPairs выходная матрица. Когда Metric установлен в любой SAD или SSD, характеристические векторы нормированы к единичным векторам перед расчетом.

МетрикаОбласть значенийЗначение идеальной пары
SAD[0, 2sqrtразмер(features1, 2))]. 0
SSD[0,4]0
Hamming[0, features1.NumBits]0

Примечание

Вы не можете выбрать Hamming метрика. Это вызывается автоматически когда features1 и features2 входными параметрами является binaryFeatures.

Ссылки

[1] Лоу, Дэвид Г. "Отличительные Функции Изображений от Инвариантного к масштабу Keypoints". Международный журнал Компьютерного зрения. Объем 60, Номер 2, стр 91–110.

[2] Muja, M. и Д. Г. Лоу. "Быстро соответствие бинарных функций. "Конференция по видению компьютера и робота. CRV, 2012.

[3] Muja, M. и Д. Г. Лоу. "Быстро аппроксимируйте самых близких соседей автоматической настройкой алгоритма". Международная конференция по вопросам теории компьютерного зрения и приложений. VISAPP, 2009.

[4] Rublee, E., В. Рабо, К. Конолидж и Г. Брадский. "ORB: эффективная альтернатива, чтобы ОТСЕЯТЬ или SURF". В Продолжениях 2 011 Международных конференций по вопросам Компьютерного зрения, 2564–2571. Барселона, Испания, 2011.

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

Введенный в R2011a