SURFPoints

Объект для хранения процентных точек SURF

Описание

Этот объект предоставляет возможность передавать данные между detectSURFFeatures и extractFeatures функций. Он также может использоваться, чтобы манипулировать и построить график данных, возвращенных этими функциями. Можно использовать объект для заполнения точек в интерактивном режиме. Можно использовать этот подход в ситуациях, когда можно было бы смешать детектор процентных точек, не являющийся не-SURF, с дескриптором SURF.

Создание

Описание

пример

points = SURFPoints(location) создает SURFPoints объект из массива M -by-2 с [x y] координатами точек.

points = SURFPoints(location,Name,Value) устанавливает свойства с помощью одной или нескольких пар "имя-значение". Заключайте каждое имя свойства в кавычки. Для примера, points = SURFPoints('Metric',0.0)

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

расширить все

Координаты точки, заданные как M -на-2 массив координат формы [x y]. M обозначает число точек.

Свойства

расширить все

Число точек, удерживаемых объектом, заданное в виде числового значения.

Местоположения точек, заданные как M -by-2 массив [x y] координат точек.

Шкала, при котором обнаруживается функция, задаётся как значение, больше или равное 1.6.

Сила обнаруженного признака, заданная в виде числового значения.

Ориентация обнаруженного признака, заданная в виде угла, в радианах. Угол измеряется против часовой стрелки от оси X с источником координат, заданной Location свойство. Не устанавливайте это свойство вручную. Полагайтесь вместо этого на вызов extractFeatures чтобы заполнить это значение. extractFeatures функция изменяет значение по умолчанию 0.0.The <reservedrangesplaceholder0> в основном полезен в целях визуализации.

Знак лапласа, определяемый в процессе обнаружения, указывается как -1, 0, или 1. Можно использовать этот параметр, чтобы ускорить процесс соответствия функций.

Blobs с одинаковыми метрическими значениями, но различными признаками Laplacian могут отличаться значениями интенсивности. Например, белый крупняк на черном грунте от черного на белом фоне. Можно использовать этот параметр, чтобы быстро устранить blobs, которые не совпадают.

Для детекторов, не являющихся SURF, это свойство не актуально. Например, для угловых функций можно просто использовать значение по умолчанию 0.

Функции объекта

plotПостройте графики точек
isemptyОпределите, пуст ли объект точек
lengthКоличество сохраненных точек
selectStrongestВыберите точки с самыми сильными метриками
sizeВерните размер объекта точки
selectUniformВыберите равномерно распределенное подмножество функции точек

Примеры

свернуть все

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

    I = imread('cameraman.tif');

Обнаружение функций SURF.

    points = detectSURFFeatures(I);

Отображение местоположения и шкалы для 10 самых сильных точек.

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

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

Отображение координат [x y] для 10 самых сильных точек в командной строке.

    strongest.Location
ans = 10x2 single matrix

  139.7482   95.9542
  107.4502  232.0347
  116.6112  138.2446
  105.5152  172.1816
  113.6975   48.7220
  104.4210   75.7348
  111.3914  154.4597
  106.2879  175.2709
  131.1298   98.3900
  124.2933   64.4942

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

    I = imread('cameraman.tif');

Обнаружение функции SURF.

    points = detectSURFFeatures(I);

Отображение последних 5 точек.

    imshow(I); hold on;
    plot(points(end-4:end));

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

Совет

Хотя SURFPoints может содержать много точек, это скалярный объект. Поэтому, numel(surfPoints) всегда возвращается 1. Это значение может отличаться от length(surfPoints), который возвращает истинное число точек, удерживаемое объектом.

Ссылки

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

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

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