exponenta event banner

ORBPoints

Объект для хранения ключевых точек ORB

Описание

Один ORBPoints объект сохраняет в изображении ориентированные ключевые точки FAST и повернутые BRIEF (ORB). Можно указать ключевые точки и сохранить их как ORBPoints объект. Вы также можете использовать detectORBFeatures для обнаружения ключевых точек ORB в изображении. detectORBFeatures функция сохраняет обнаруженные ключевые точки ORB как ORBPoints объект. Функция «Объектные функции» используется для печати, выбора и управления обнаруженными ключевыми точками ORB.

Создание

Описание

points = ORBPoints создает ORBPoints со значениями свойств по умолчанию.

пример

points = ORBPoints(location) создает ORBPoints объект из набора координат местоположения, заданного location. Ввод местоположения устанавливает Location собственность.

пример

points = ORBPoints(location,Name,Value) задает свойства объекта, используя один или несколько аргументов пары имя-значение. Заключите каждое имя свойства в кавычки. Например, ORBPoints(location,'Count',15) создает ORBPoints объект с Count свойство имеет значение 15.

Свойства

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

Это свойство доступно только для чтения.

Расположение ключевых точек, указанных как матрица M-by-2. Каждая строка имеет вид [x y] и представляет местоположение ключевой точки. M - количество ключевых точек. Нельзя задать это свойство как пару имя-значение. Используйте location входной аргумент.

Это свойство доступно только для чтения.

Сила ключевых точек, указанных как одно из следующих значений:

  • Скаляр - обнаруженные ключевые точки имеют одинаковую силу. В этом случае объект присваивает то же самое Metric значение для всех ключевых точек.

  • Вектор М-элемента - обнаруженные ключевые точки имеют различные значения силы. В этом случае объект присваивает различные Metric значение для каждой ключевой точки. M - количество ключевых точек.

Пример: ORBPoints(location,'Metric',0.5)

Типы данных: single

Это свойство доступно только для чтения.

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

Это свойство доступно только для чтения.

Масштабный коэффициент, заданный как одно из следующих значений:

  • Скаляр - все ключевые точки обнаруживаются на одном уровне разложения. В этом случае объект присваивает то же самое Scale значение для всех ключевых точек.

  • Вектор M-элемента - ключевые точки обнаруживаются на различных уровнях разложения. В этом случае объект присваивает различные Scale значение для каждой ключевой точки. M - количество ключевых точек.

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

Пример: ORBPoints(location,'Scale',1.2)

Типы данных: single

Это свойство доступно только для чтения.

Угол ключевых точек в радианах, определяемый как одно из следующих значений:

  • Скаляр - обнаруженные ключевые точки имеют одинаковую ориентацию. В этом случае объект присваивает то же самое Orientation значение для всех ключевых точек.

  • Вектор М-элемента - обнаруженные ключевые точки имеют различную ориентацию. В этом случае объект присваивает различные Orientation значение для каждой ключевой точки. M - количество ключевых точек.

Угол, образованный ключевой точкой, определяется относительно горизонтальной оси изображения. Координата ключевой точки задается как начало координат оси.

Пример: ORBPoints(location,'Orientation',0.7854)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

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

Примеры

свернуть все

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

I = imread('licensePlates.jpg');

Преобразование изображения в оттенки серого.

I = im2gray(I);

Укажите расположение ключевых точек на изображении.

location = [400 398; ...
            485 343; ...
            274 323; ...
            274 367; ...
            241 313; ...
            302 213];  

Создание ORBPoints и отобразить его свойства.

points = ORBPoints(location)
points = 
  6x1 ORBPoints array with properties:

       Location: [6x2 single]
         Metric: [6x1 single]
          Count: 6
          Scale: [6x1 single]
    Orientation: [6x1 single]

Осмотрите Scale и Orientation свойства ORBPoints объект.

points.Scale
ans = 6x1 single column vector

     1
     1
     1
     1
     1
     1

points.Orientation
ans = 6x1 single column vector

     0
     0
     0
     0
     0
     0

Укажите значение масштаба для каждой ключевой точки.

scale = [2.1 2.5 2.5 4 2.3 3.9];

Задайте значения углов для ключевых точек в виде 0,7854 радиана.

angle = 0.7854;

Создание ORBPoints с ключевыми точками и обновленными значениями масштаба и угла. Выходные данные представляют собой ORBPoints объект, содержащий ключевые точки с измененным Scale и Orientation свойства.

points = ORBPoints(location,'Scale',scale,'Orientation',angle);

Проверка обновленного Scale значения.

points.Scale
ans = 6x1 single column vector

    2.1000
    2.5000
    2.5000
    4.0000
    2.3000
    3.9000

Проверка обновленного Orientation значения. С момента Orientation значение является скаляром, объект присваивает одно и то же значение всем ключевым точкам.

points.Orientation
ans = 6x1 single column vector

    0.7854
    0.7854
    0.7854
    0.7854
    0.7854
    0.7854

Отображение изображения и печать ключевых точек ORB на изображении.

figure
imshow(I)
hold on
plot(points)

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

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

I = imread('cameraman.tif');

Используйте detectORBFeatures функция обнаружения ключевых точек ORB в изображении. Функция возвращает обнаруженные ключевые точки ORB в виде ORBPoints объект.

points = detectORBFeatures(I);

Используйте selectUniform для выбора 10 ключевых точек ORB. Выходные данные selectUniform объектная функция является ORBPoints объект.

newPoints = selectUniform(points,10,size(I))
newPoints = 
  10x1 ORBPoints array with properties:

       Location: [10x2 single]
         Metric: [10x1 single]
          Count: 10
          Scale: [10x1 single]
    Orientation: [10x1 single]

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

figure
imshow(I)
hold on
plot(newPoints)

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

Отображение координат (x, y) выбранных ключевых точек.

x = newPoints.Location(:,1);
y = newPoints.Location(:,2);
[x y]
ans = 10x2 single matrix

   147    62
   111    63
   143    67
   127    89
    47   124
    34   154
   183   205
   113   206
   111   207
   148    66

Отображение ориентации выбранных ключевых точек.

newPoints.Orientation
ans = 10x1 single column vector

    5.4682
    0.7888
    5.3084
    6.2443
    2.8221
    3.8440
    6.1212
    6.0344
    4.8840
    5.5535

Совет

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

Ссылки

[1] Рублее, Э., В. Рабо, К. Конолиге и Г. Брадски. «ORB: эффективная альтернатива SIFT или SURF». В материалах Международной конференции по компьютерному зрению 2011 года, стр. 2564-2571. Барселона, Испания: IEEE, 2011.

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

.
Представлен в R2019a