visionhdl.CornerDetector

Находит углы с помощью Алгоритма FAST

Описание

visionhdl.CornerDetector объект обнаруживает углы при помощи алгоритма от ускоренного теста сегмента (FAST) функций. Для каждого пикселя, если пиксель является углом, объект возвращает угловую метрику. Если пиксель не является углом, объект возвращает пиксельное значение нуля.

Алгоритм FAST тестирует круговую область вокруг потенциального центра угла. Тест обнаруживает угол, если непрерывный раздел пикселей является или более ярким, чем центр плюс порог или более темным, чем центр минус порог. Можно задать минимальный контрастный порог как свойство или аргумент и выбор из трех правил задать угол. Эти правила задают, сколько пикселей в кругу пикселей должно превысить минимальный контраст для центрального пикселя, который будет рассмотрен углом. Объект выполняет параллельные тесты всех комбинаций непрерывных пикселей вокруг круга.

Обнаружить углы в пиксельном потоке:

  1. Создайте visionhdl.CornerDetector объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

corners = visionhdl.CornerDetector(Name,Value) возвращает угловую Систему детектора object™. Установите свойства с помощью пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки.

Например:

corners = visionhdl.CornerDetector('Method','FAST 7 of 12',...
            'MinContrastSource','Input port',...
            'PaddingMethod','None')

Свойства

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

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Задайте, сколько непрерывных пикселей на круге должно превысить порог для центрального пикселя, который будет отмечен как угол. Для кругов 8, 12, и 16 пикселей, показанных в этих фигурах, объект обнаруживает угол, когда 5, 7, или 9 непрерывных пикселей, соответственно, выше порога. Объект проверяет на это количество непрерывных пикселей где угодно на круге. Объект использует ядро размера, 3х3 для 'FAST 5 of 8', 5 на 5 для 'FAST 7 of 12', и 7 7 для 'FAST 9 of 16'.

Diagrams of the three sizes of kernels with the circle of pixels around the
                center pixel labeled.

Задайте 'Property' устанавливать контрастный порог при помощи MinContrast свойство. Задайте 'Input port' включить minC аргумент.

Каждый пиксель в кругу вычтен из центрального пиксельного значения, и только те различия, которые превышают этот порог, используются, чтобы определить, является ли центральный пиксель углом и вычислить выходную метрику. Это значение снято к совпадающему типу данных как вход pixel.

Зависимости

Чтобы включить это свойство, установите MinContrastSource свойство к 'Property'.

Задайте степень двойки, которая размещает количество активных пикселей в одной горизонтальной линии.

Если вы задаете значение, которое не является степенью двойки, объект использует следующую самую большую степень двойки. Объект выделяет (N – 1)-by-LineBufferSize ячейки памяти, чтобы сохранить пиксели. N является размером ядра. Объект использует ядро размера, 3х3 когда Method 'FAST 5 of 8', 5 на 5, когда Method 'FAST 7 of 12', и 7 7 когда Method 'FAST 9 of 16'.

Выберите один из этих методов для дополнения контура входного изображения. Для получения дополнительной информации об этих методах, смотрите, что Ребро Дополняет.

  • 'Symmetric' — Установите значение дополнительных пикселей, чтобы зеркально отразить ребро изображения. Эта опция препятствует тому, чтобы углы были обнаружены на контурах активной системы координат.

  • 'None' — Исключите дополнительную логику. Объект не устанавливает пиксели вне фрейма изображения ни к какому конкретному значению. Эта опция уменьшает аппаратные ресурсы, используемые объектом и очищением, требуемым между системами координат, но влияет на точность выходных пикселей в ребрах системы координат. Чтобы обеспечить пиксельную потоковую синхронизацию, выходная система координат одного размера с входным кадром. Однако избегать использования пикселей, вычисленных от неопределенных дополнительных значений, маски от KernelSize/2 пиксели вокруг ребра системы координат для нисходящих операций. Для получения дополнительной информации смотрите Пропускную способность Увеличения с Дополнением Ни одного.

Режим Rounding используется в операциях фиксированной точки. Когда вход является любым целым числом или типом данных с фиксированной точкой, алгоритм использует вычисления с фиксированной точкой во внутренних вычислениях. Эта опция не применяется, когда типом входных данных является single или double.

Режим переполнения используется в операциях фиксированной точки. Когда вход является любым целым числом или типом данных с фиксированной точкой, алгоритм использует вычисления с фиксированной точкой во внутренних вычислениях. Эта опция не применяется, когда типом входных данных является single или double.

Метод, чтобы определить тип данных выходной угловой метрики.

  • 'Same as first input''— Наборы тип данных угловой метрики, чтобы совпадать с типом данных pixelIn.

  • 'Custom' — Устанавливает тип данных угловой метрики совпадать с типом данных, заданным в CustomOutputDataType свойство.

  • 'Full precision''— Вычисляет типы внутренних и выходных данных, использующие правила полной точности. Эти правила обеспечивают точные численные данные фиксированной точки и предотвращают квантование в объекте. Биты добавляются, по мере необходимости, чтобы предотвратить округление и переполнение.

Тип данных для выходной угловой метрики в виде numerictype(signed,WL,FL), где WL является размером слова, и FL является дробной длиной в битах. Объектные случаи угловая метрика к этому типу данных.

Зависимости

Это свойство применяется, когда вы устанавливаете OutputDataType к 'Custom'.

Использование

Описание

[corner,ctrlOut] = corners(pixelIn,ctrlIn) возвращает метрику, которая указывает, является ли каждый пиксель углом

[corner,ctrlOut] = corners(pixelIn,minC,ctrlIn) задает контрастный порог как входной параметр.

Этот объект использует пиксельный интерфейс потоковой передачи со структурой для сигналов управления кадром. Этот интерфейс включает объекту действовать независимо от размера изображения и формата, и соединиться с другими объектами Vision HDL Toolbox™. Объект принимает и возвращает скалярное пиксельное значение. Объект принимает и возвращает управляющие сигналы как структуру, содержащую пять сигналов. Управляющие сигналы указывают на валидность каждого пикселя и его местоположения в системе координат. Чтобы преобразовать пиксельную матрицу в пиксельный поток и управляющие сигналы, используйте visionhdl.FrameToPixels объект. Для полного описания интерфейса смотрите Пиксельный Интерфейс Потоковой передачи.

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

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

Один пиксель изображения в пиксельном потоке в виде интенсивности представления скалярного значения.

double и single типы данных поддерживаются для симуляции, но не для генерации HDL-кода.

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

Управляющие сигналы сопроводительный пиксельный поток в виде pixelcontrol структура, содержащая пять logical сигналы типа данных. Сигналы описывают валидность пикселя и местоположение пикселя в системе координат. Для получения дополнительной информации смотрите Пиксельную Управляющую структуру.

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

Контрастный порог, который указывает на угол в виде неотрицательного целого числа. Каждый пиксель в кругу вычтен из центрального пиксельного значения, и только те различия, которые превышают этот порог, используются, чтобы определить, является ли центральный пиксель углом и вычислить выходную метрику. Это значение снято к совпадающему типу данных как pixelIn.

double и single типы данных поддерживаются для симуляции, но не для генерации HDL-кода.

Зависимости

Чтобы включить этот порт, установите MinContrastSource свойство к 'Input port'.

Типы данных: single | double | uint8 | uint16 | uint32 | uint64 | fi

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

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

Контрастируйте метрическое значение, которое указывает, является ли пиксель углом, возвращенным как скаляр. Тип определяется OutputDataType свойство. Когда пиксель не является углом, объект возвращает нуль для этого значения. Когда пиксель является углом, это значение является угловой метрикой силы, вычисленной при помощи суммы абсолютной разности (SAD) пикселей вокруг круга с центральным пиксельным значением. Только те различия, которые превышают минимальный контрастный порог, включены в метрику.

double и single типы данных поддерживаются для симуляции, но не для генерации HDL-кода.

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

Управляющие сигналы, сопровождающие пиксельный поток, возвращенный как pixelcontrol структура, содержащая пять logical сигналы типа данных. Сигналы описывают валидность пикселя и его местоположения в системе координат. Для получения дополнительной информации смотрите Пиксельную Управляющую структуру.

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

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

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

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

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Смотрите также

Блоки

Объекты

Введенный в R2020a

Для просмотра документации необходимо авторизоваться на сайте