SIFTPoints

Объект для хранения SIFT интересует точки

Описание

SIFTPoints объект позволяет вам передать данные между detectSIFTFeatures и extractFeatures функции. Можно также использовать его, чтобы управлять и отобразить на графике данные, возвращенные этими функциями. Можно использовать объект заполнить точки интереса в интерактивном режиме.

Создание

Описание

пример

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

points = SIFTPoints(location,Name=Value) свойства наборов с помощью одних или нескольких аргументов name-value. Например, SIFTPoints(Metric=0.0)

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

развернуть все

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

Свойства

развернуть все

Масштабируйтесь, в котором точки интереса обнаруживаются в виде значения, больше, чем 0.

Сила обнаруженного признака в виде значения в области значений [0 1]. Алгоритм SIFT использует контрастный порог, чтобы определить сильные черты.

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

Индекс Гауссова слоя октавы пирамиды, что keypoint извлечен из в виде целого числа. Октава является набором слоев пирамиды различия-гауссова и используется для пробела шкалы.

Слой в октаве, из которой keypoint был извлечен в виде целого числа.

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

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

Примеры

свернуть все

Считайте изображение.

I = imread("cameraman.tif");

Обнаружьте функции SIFT в изображении.

points = detectSIFTFeatures(I)
points = 
  274x1 SIFTPoints array with properties:

          Scale: [274x1 single]
    Orientation: [274x1 single]
         Octave: [274x1 int32]
          Layer: [274x1 int32]
       Location: [274x2 single]
         Metric: [274x1 single]
          Count: 274

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

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

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

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

strongest.Location
ans = 10x2 single matrix

  183.2607  205.7324
  112.7613  206.8682
  140.7289   96.1705
  135.5473  125.4136
  101.5411  174.0036
  111.1929  156.2148
  167.3374   77.7732
  131.6280  114.0382
  114.2321   48.5672
  135.2517   92.6351

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

I = imread("cameraman.tif");

Обнаружьте функции SIFT в изображении.

points = detectSIFTFeatures(I);

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

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

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

Советы

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

  • Свойства могут быть заданы как скаляр или вектор, длина которого совпадает с количеством координат в location.

Ссылки

[1] Лоу, Дэвид Г.. "Отличительные Функции Изображений от Инвариантного к масштабу Keypoints". Int Дж. Компьют. Видение 60, № 2 (2004): 91 - 110.

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

Введенный в R2021b