detectORBFeatures

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

Описание

пример

points = detectORBFeatures(I) возвращает ORBPoints объект, который содержит информацию о ORB keypoints. ORB keypoints обнаруживается от входного изображения при помощи Ориентированного FAST и вращал BRIEF (ORB) метод выявления признаков.

пример

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

Примеры

свернуть все

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

I = imread('businessCard.png');

Преобразуйте изображение в полутоновое изображение.

I = rgb2gray(I);

Отображение полутонового изображения.

figure
imshow(I)

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

points = detectORBFeatures(I);

Отобразите полутоновое изображение и постройте обнаруженный ORB keypoints. Подавите отображение кругов вокруг обнаруженного keypoints. ORB keypoints обнаруживается в областях с отклонением высокой интенсивности.

figure
imshow(I)
hold on
plot(points,'ShowScale',false)
hold off

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

I = imread('star.png');

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

figure
imshow(I)

Обнаружение и хранение ключевых точек ORB. Задайте масштабный коэффициент для разложения изображений как 1,01 и количество уровней разложения как 3.

points = detectORBFeatures(I,'ScaleFactor',1.01,'NumLevels',3);

Отобразите изображение и постройте обнаруженный ORB keypoints. Точки перегиба в бинарном изображении формы обнаруживаются как ORB keypoints.

figure
imshow(I)
hold on
plot(points)
hold off

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

свернуть все

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

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

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

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

Пример: detectORBFeatures(I,'NumLevels',4)

Масштабный коэффициент для разложения изображений в виде разделенной запятой пары, состоящей из 'ScaleFactor' и скаляр, больше, чем 1. Значением шкалы на каждом уровне разложения является ScaleFactor(level-1), где level является любым значением в области значений [0, Numlevels- 1]. Учитывая входное изображение размера M-by-N, размер изображения на каждом уровне разложения MScaleFactor(level1)-NScaleFactor(level1).

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

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

Количество уровней разложения для извлечения keypoints ограничивается размером изображения на том уровне. Размер изображения на уровне разложения должен быть, по крайней мере, 63 63 для обнаружения keypoints. Максимальный уровень разложения вычисляется как

levelmax = floor(log(min(M,N))log(63)log(ScaleFactor))+1

Если или значение по умолчанию или заданное значение 'NumLevels' больше levelmax, функция изменяет NumLevels к levelmax и возвращает предупреждение.

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

Необходимая область для keypoint обнаружения в виде разделенной запятой пары, состоящей из 'ROI' и вектор формата [x y width height]. Первые два элемента представляют местоположение левого верхнего угла необходимой области. Последние два элемента представляют ширину и высоту необходимой области. Ширина и высота необходимой области должны каждый быть значением, больше, чем или равный 63.

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

свернуть все

ORB keypoints, возвращенный как ORBPoints объект. Объект содержит информацию о keypoints, обнаруженном во входном изображении.

Алгоритмы

Функция обнаруживает keypoints от входного изображения при помощи метода выявления признаков ORB в [1].

Ссылки

[1] Rublee, E., В. Рабо, К. Конолидж и Г. Брадский. "ORB: эффективная альтернатива SIFT или SURF". В продолжениях 2 011 международных конференций по вопросам компьютерного зрения, 2564–2571. Барселона, Испания: IEEE, 2011.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2019a