extractFeatures

Извлеките дескрипторы точки интереса

Описание

пример

[features,validPoints] = extractFeatures(I,points) возвращает извлеченные характеристические векторы, также известные как дескрипторы и их соответствующие местоположения, от изображения интенсивности или двоичного файла.

Функция выводит дескрипторы из пикселей, окружающих точку интереса. Пиксели представляют и совпадают с функциями, заданными местоположением одно точки. Каждая одно точка задает центральное местоположение окружения. Метод, который вы используете для экстракции дескриптора, зависит от класса входа points.

пример

[features,validPoints] = extractFeatures(I,points,Name,Value) дополнительные опции использования заданы одним или несколькими Name,Value парные аргументы.

Примеры

свернуть все

Чтение изображения.

  I = imread('cameraman.tif');

Найдите и извлеките угловые функции.

  corners = detectHarrisFeatures(I);
  [features, valid_corners] = extractFeatures(I, corners);

Отобразите изображение.

  figure; imshow(I); hold on

Figure contains an axes object. The axes object contains an object of type image.

Постройте допустимые угловые точки.

  plot(valid_corners);

Figure contains an axes object. The axes object contains 2 objects of type image, line.

Readimage.

    I = imread('cameraman.tif');

Найдите и извлеките функции.

    points = detectSURFFeatures(I);
    [features, valid_points] = extractFeatures(I, points);

Отобразите и постройте десять самых сильных функций SURF.

    figure; imshow(I); hold on;
    plot(valid_points.selectStrongest(10),'showOrientation',true);

Figure contains an axes object. The axes object contains 3 objects of type image, line.

Readimage.

    I = imread('cameraman.tif');

Найдите функции с помощью MSER с дескриптором функции SURF.

    regions = detectMSERFeatures(I);
    [features, valid_points] = extractFeatures(I,regions,'Upright',true);

Отобразите функции SURF, соответствующие центрам эллипса MSER.

    figure; imshow(I); hold on;
    plot(valid_points,'showOrientation',true);

Figure contains an axes object. The axes object contains 3 objects of type image, line.

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

свернуть все

Введите изображение или в виде бинарного или в виде 2D полутонового изображения.

Типы данных: логический | single | double | int16 | uint8 | uint16

Центральная точка местоположения квадратного окружения в виде любого SIFTPoints, BRISKPoints, SURFPoints, KAZEPoints, MSERRegions, cornerPoints , или ORBPoints объект или M-by-2 матрица количества M [x y] координаты. Таблица приводит возможные входные классы точек, которые могут использоваться для экстракции.

Класс точек 
SIFTPointsИнвариантная к масштабу функция преобразовывает (SIFT)
BRISKPointsБинарный устойчивый инвариантный масштабируемый Keypoints (BRISK)
SURFPoints объектУскоренные устойчивые функции (SURF)
MSERRegions объектМаксимально устойчивые экстремальные области (MSER)
cornerPointsОт ускоренного теста сегмента (FAST) функций, Минимальное собственное значение или Харрис
KAZEPointsНелинейные основанные на пирамиде изображений функции инварианта вращения и ориентации. Подобно SURF, но содержит менее шумные точки.
ORBPointsОриентированный FAST и вращаемый BRIEF (ORB) функции.
M-by-2 матрица [x y] координатыОкружение простого квадрата вокруг [x y] указывает местоположения

Аргументы name-value

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

Пример: 'Method', 'Block' задает Block метод для экстракции дескриптора.

Метод экстракции дескриптора в виде 'SIFT', 'FREAK'surf, 'ORB', 'Block', или 'Auto'.

Таблица описывает, как функция реализует методы экстракции дескриптора.

МетодХарактеристический вектор (дескриптор)
SIFTИнвариантное к масштабу преобразование функции (SIFT). Функция устанавливает Orientation свойство validPoints выведите объект к ориентации извлеченных функций в радианах.
BRISKБинарный устойчивый инвариантный масштабируемый Keypoints (BRISK). Функция устанавливает Orientation свойство validPoints выведите объект к ориентации извлеченных функций в радианах.
FREAKБыстрая Сетчатка Keypoint (FREAK). Функция устанавливает Orientation свойство validPoints выведите объект к ориентации извлеченных функций в радианах.
SURFУскоренные устойчивые функции (SURF).The функция устанавливают Orientation свойство validPoints выведите объект к ориентации извлеченных функций в радианах.

Когда вы используете MSERRegions объект с SURF метод, Centroid свойство объекта извлекает дескрипторы SURF. Axes свойство объекта выбирает шкалу дескрипторов SURF, таким образом, что круг, представляющий функцию, имеет область, пропорциональную области эллипса MSER. Шкала вычисляется как 1/4*sqrt((majorAxes/2).*(minorAxes/2)) и насыщаемый к 1.6, как требуется SURFPoints объект.

ORBОриентированный FAST и вращаемый BRIEF (ORB) функции. Orientation свойство validPoints выходной объект автоматически установлен в Orientation свойство входа ORBPoints объект points.
KAZEНелинейные находящиеся в пирамиде функции.

Функция устанавливает Orientation свойство validPoints выведите объект к ориентации извлеченных функций в радианах.

Когда вы используете MSERRegions объект с KAZE метод, Location свойство объекта используется, чтобы извлечь дескрипторы KAZE.

Axes свойство объекта выбирает шкалу дескрипторов KAZE, таким образом, что круг, представляющий функцию, имеет область, пропорциональную области эллипса MSER.

BlockПростой квадрат neighbhorhood.

Блок метод извлекает только окружения, полностью содержавшие в границе изображения. Поэтому выход, validPoints, может содержать меньше точек, чем вход POINTS.

AutoФункция выбирает Method, на основе класса точек ввода и реализаций:
FREAK метод для cornerPoints входной объект.
SURF метод для SURFPoints или MSERRegions входной объект.
BRISK метод для BRISKPoints входной объект.
ORB метод для ORBPoints входной объект.

Для M-by-2 входная матрица [x y] координаты, функция реализует Block метод.

Примечание

Методом экстракции дескриптора должен быть ORB, если вход points ORBPoints объект. Кроме того, ORB метод экстракции дескриптора не поддерживается ни для какого другого класса точек, кроме ORBPoints.

Размер блока в виде нечетного целочисленного скаляра. Это значение задает локальное квадратное окружение BlockSize-by-BlockSize, сосредоточенный в каждой точке интереса. Эта опция применяется только, когда функция реализует Block метод.

Флаг инвариантности вращения, заданный логический скаляр. Когда вы устанавливаете это свойство на true, ориентация характеристических векторов не оценивается, и ориентация функции установлена в пи/2. Установите это на true когда вам не нужны дескрипторы изображений, чтобы получить информацию о вращении. Когда вы устанавливаете это свойство на false, ориентация функций оценивается, и функции затем инвариантные к вращению.

Примечание

Флаг 'Upright' инвариантности вращения не поддерживается если вход points ORBPoints объект.

Длина SURF или характеристического вектора KAZE (дескриптор) в виде 64 или 128. Эта опция применяется только, когда функция реализует SURF или KAZE метод. Больший размер элемента 128 обеспечивает большую точность, но уменьшает скорость соответствия функции.

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

свернуть все

Характеристические векторы, возвращенные как binaryFeatures возразите или M-by-N матрица характеристических векторов M, также известных как дескрипторы. Каждый дескриптор имеет длину N.

Актуальные вопросы сопоставлены с каждым выходным характеристическим вектором (дескриптор) в features, возвращенный в том же формате как вход. Актуальными вопросами может быть SIFTPoints, BRISKPoints, cornerPoints, SURFPoints, KAZEPoints, MSERRegions, ORBPoints объект или M-by-2 матрица [x, y] координаты.

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

Ссылки

[1] Г. Брадский и А. Кэехлер, изучение OpenCV: компьютерное зрение с библиотекой OpenCV, О'Райли, Севастополем, CA, 2008.

[2] Герберт Бэй, Андреас Эсс, Tinne Tuytelaars, Люк Ван Гул, SURF: Ускоренные Устойчивые Функции", Компьютерное зрение и Распознавание изображений (CVIU), Издание 110, № 3, стр 346 - 359, 2008

[3] Отсек, Герберт, Андреас Эсс, Тинн Тейтелэарс и Люк Ван Гул, "SURF: Ускоренные Устойчивые Функции", Компьютерное зрение и Распознавание изображений (CVIU), Издание 110, № 3, стр 346 - 359, 2008.

[4] Alahi, Александр, Ортис, Рафаэль и Пьер Вандергхеин, "FREAK: быстрая сетчатка Keypoint", конференция по IEEE по компьютерному зрению и распознаванию образов, 2012.

[5] Alcantarilla, P.F., А. Бартоли и А.Дж. Дэйвисон. "Функции KAZE", ECCV 2012, Часть VI, LNCS 7 577 стр 214, 2012

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

Введенный в R2011a