extractFeatures

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

Синтаксис

[features,validPoints] = extractFeatures(I,points)
[features,validPoints] = extractFeatures(I,points,Name,Value)

Описание

пример

[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

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

  plot(valid_corners);

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);

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);

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

свернуть все

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

Типы данных: logical | single | double | int16 | uint8 | uint16

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

Класс точек 
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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

Метод экстракции дескриптора, заданный как пара, разделенная запятой, состоящая из 'Method' и вектора символов 'FREAK', 'SURF', 'ORB', Block' или 'Auto'.

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

МетодХарактеристический вектор (дескриптор)
BRISKБинарный устойчивый инвариантный масштабируемый Keypoints (BRISK).
Функция устанавливает свойство Orientation validPoints объект вывода к ориентации извлеченных функций в радианах.
FREAKБыстрая сетчатка Keypoint (ПЯТНО).
Функция устанавливает свойство Orientation validPoints объект вывода к ориентации извлеченных функций в радианах.
SURFУскоренные устойчивые функции (SURF).
Функция устанавливает свойство 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 объекта points входа ORBPoints.
KAZEНелинейные находящиеся в пирамиде функции.

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

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

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

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

Метод Block извлекает только окружения, полностью содержавшие в границе изображения. Поэтому вывод, 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. Эта опция применяется только, когда функция реализует метод KAZE или SURF. Больший размер элемента 128 обеспечивает большую точность, но уменьшает скорость соответствия функции.

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

свернуть все

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

Актуальные вопросы сопоставили с каждым выходным характеристическим вектором (дескриптор) в features, возвращенном в том же формате как вход. Актуальными вопросами может быть 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, Александр, Ортис, Рафаэль и Пьер Вандергхеин, "ПЯТНО: быстрая сетчатка Keypoint", конференция по IEEE по компьютерному зрению и распознаванию образов, 2012.

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

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

Введенный в R2011a