detectSURFFeatures

Обнаружьте функции SURF и возвратите объект SURFPoints

Синтаксис

points = detectSURFFeatures(I)
points = detectSURFFeatures(I,Name,Value)

Описание

пример

points = detectSURFFeatures(I) возвращает объект SURFPoints, points, содержание информации о функциях SURF, обнаруженных в 2D полутоновом входе, отображает I. Функция detectSURFFeatures реализует алгоритм Ускоренных устойчивых функций (SURF), чтобы найти функции блоба.

points = detectSURFFeatures(I,Name,Value) задает опции с помощью одного или нескольких аргументов значения имени в дополнение к входным параметрам в предыдущем синтаксисе.

Примеры

свернуть все

Считайте изображение и обнаружьте точки интереса.

I = imread('cameraman.tif');
points = detectSURFFeatures(I);

Отобразите местоположения интереса к изображению.

imshow(I); hold on;
plot(points.selectStrongest(10));

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

свернуть все

Введите изображение, заданное как M-by-N 2D шкала полутонов. Входное изображение должно быть действительным неразреженным значением.

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

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

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

Пример: detectSURFFeatures(I,'MetricThreshold',100)

Самый сильный порог функции, заданный как пара, разделенная запятой, состоящая из 'MetricThreshold' и неотрицательного скаляра. Чтобы возвратить больше блобов, уменьшите значение этого порога.

Количество октав, заданных как пара, разделенная запятой, состоящая из 'NumOctaves' и целочисленного скаляра, больше, чем или равный 1. Увеличьте это значение, чтобы обнаружить большие блобы. Рекомендуемые значения между 1 и 4.

Каждая октава охватывает много шкал, которые анализируются с помощью переменных фильтров размера:

ОктаваОтфильтруйте размеры
1 9 9, 15 15, 21 21, 27 27...
2 15 15, 27 27, 39 39, 51 51...
3 27 27, 51 51, 75 75, 99 99...
4....

Более высокие октавы используют более крупные фильтры и подвыбирают данные изображения. Большее число октав приводит к нахождению больших блобов размера. Установите параметр NumOctaves соответственно для размера изображения. Например, 50 50 изображение требуют, чтобы вы установили параметр NumOctaves, меньше чем или равный 2. Параметр NumScaleLevels управляет количеством фильтров, используемых на октаву. По крайней мере три уровня требуются, чтобы анализировать данные в одной октаве.

Количество уровней шкалы на октаву, чтобы вычислить, заданный как пара, разделенная запятой, состоящая из 'NumScaleLevels' и целочисленного скаляра, больше, чем или равный 3. Увеличьте это число, чтобы обнаружить больше блобов в более прекрасном шаге шкалы. Рекомендуемые значения между 3 и 6.

Прямоугольная видимая область, заданная как вектор. Вектор должен быть в формате [x y width height]. Когда вы задаете ROI, функция обнаруживает углы в области в [x y] размера, заданного [width height]. [x y] элементы задают левый верхний угол области.

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

свернуть все

Функции SURF, возвращенные как объект SURFPoints. Этот объект содержит информацию о функциях SURF, обнаруженных в полутоновом изображении.

Ссылки

[1] Отсек, H. A. Эс, Т. Тейтелэарс и Л. ван Гул. “SURF:Speeded Устойчивые Функции”. Компьютерное зрение и Распознавание изображений (CVIU).Vol. 110, № 3, стр 346–359, 2008.

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

Представленный в R2011b