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. The axes contains an object of type image.

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

  plot(valid_corners);

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

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

    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. The axes contains 3 objects of type image, line.

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

    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. The axes contains 3 objects of type image, line.

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

свернуть все

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

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

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

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

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

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

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

Метод извлечения дескриптора, заданный как разделенная разделенными запятой парами, состоящая из 'Method'и' FREAKSURFORB', Block', или' Auto'.

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

МетодВектор функции (дескриптор)
BRISKДвоичные робастные инвариантные масштабируемые ключевые точки (BRISK).
Функция устанавливает Orientation свойство validPoints выходной объект для ориентации извлечённых функций в радианах.
FREAKFast Retina Keypoint (FREAK).
Функция устанавливает Orientation свойство validPoints выходной объект для ориентации извлечённых функций в радианах.
SURFУскоренные робастные функции (SURF).
Функция устанавливает Orientation свойство validPoints выходной объект для ориентации извлечённых функций в радианах.

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

Примечание

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

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

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

свернуть все

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

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

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

Ссылки

[1] G. Bradski and A. Kaehler, Learning OpenCV: Компьютерное зрение with the OpenCV Library, O'Reilly, Sebastopol, CA, 2008.

[2] Herbert Bay, Andreas Ess, Tinne Tuytelaars, Luc Van Gool, SURF: Speeded Up Robust Features ", Computer Vision and Image Understanding (CVIU U.), vol. 110, no. 3, p. 346, 2008, p.

[3] Bay, Herbert, Andreas Ess, Tinne Tuytelaars, and Luc Van Gool, «SURF: Speeded Up Robust Features», Computer Vision and Image Understanding (Cviu), Vol. 110, no. 3, p. 346, 2008

[4] Alahi, Alexandre, Ortiz, Raphael, and Pierre Vandergheynst, «FREAK: Fast Retina Keypoint», IEEE Conference on Компьютерное Зрение and Pattern Recognition, 2012.

[5] Alcantarilla, P.F., A. Bartoli, and A.J. Davison. «KAZE Функций», ECCV 2012, часть VI, LNCS 7577 стр. 214, 2012

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

.
Введенный в R2011a