detectSURFFeatures

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

Описание

пример

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

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

Примеры

свернуть все

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

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

Отобразите интересующие вас места в изображении.

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

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

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

свернуть все

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

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

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

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

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

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

Количество октав, заданное как разделенная разделенными запятой парами, состоящая из NumOctaves'и целочисленный скаляр, больше или равный 1. Увеличьте это значение, чтобы обнаружить большие blobs. Рекомендуемые значения находятся между 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. The NumScaleLevels параметр контролирует количество фильтров, используемых в октаве. Для анализа данных в одной октаве требуется не менее трех уровней.

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

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

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

свернуть все

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

Ссылки

[1] Bay, H., A. Ess, T. Tuytelaars, and L. Van Gool. SURF: ускоренные робастные функции. Компьютерное зрение и понимание изображений (CVIU) .Vol. 110, № 3, стр 346–359, 2008.

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

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