visionhdl.CornerDetector

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

Описание

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

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

Алгоритм Харриса вычисляет горизонтальные и вертикальные градиенты, фильтрует компоненты градиента с круговым Гауссовым фильтром 5 на 5 и вычисляет метрику, которая представляет силу угла. Можно задать порог, который определяет уровень, на котором обнаруживаются углы. Объект возвращает угол для пикселей, где метрика превышает этот порог. Алгоритм Харриса использует больше аппаратных ресурсов, чем Алгоритм FAST, но может обнаружить углы, которые не может найти Алгоритм FAST.

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

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

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

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

Создание

Описание

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

Например:

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

Свойства

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

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

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

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

Выберите алгоритм Харриса или размер круга для Алгоритма FAST. Три опции FAST задают, сколько непрерывных пикселей на круге должно превысить порог для центрального пикселя, который будет отмечен как угол. Для кругов 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.

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

Зависимости

Чтобы включить это свойство, установите Method свойство к одной из опций FAST.

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

Зависимости

Чтобы включить это свойство, установите Method свойство к одной из опций FAST и набора MinContrastSource свойство к 'Property'.

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

Зависимости

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

Это значение представляет приближение собственных значений матрицы Харриса, вычисленной от результатов градиента. Объект возвращает угол для пикселей, где метрика превышает этот порог. Это значение снято к совпадающему типу данных как выход corner. Угловая метрика находится в области значений четвертой степени значений входного пикселя. Например, для 8-битного входного пикселя, выходной размер полной точности составляет 44 бита.

Зависимости

Чтобы включить это свойство, установите Method свойство к 'Harris' и набор ThresholdSource свойство к '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'.

Когда вы устанавливаете Method к 'Harris', объект использует тот 1 3 ядро и одно ядро 3 на 1 для вычисления градиента и три ядра 5 на 5 для кругового фильтра окна на трех компонентах градиента.

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

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

  • 'Replicate' — Повторите значение пикселей в ребре изображения.

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

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

Круговые фильтры окна, используемые в алгоритме Харриса, заполняют ребра системы координат с помощью 'Replicate' дополнение.

Режим 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,thresh,ctrlin) задает порог, который определяет угол как входной параметр. Этот синтаксис запрашивает и Харриса и Алгоритмы FAST. Порог интерпретирован по-другому для каждого алгоритма. Чтобы включить этот аргумент при использовании Алгоритма FAST, установите MinContrastSource свойство к 'Input port'. Чтобы включить этот аргумент при использовании алгоритма Харриса, установите ThresholdSource свойство к 'Input port'.

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

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

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

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

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

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

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

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

Порог, который указывает на угол в виде неотрицательного целого числа.

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

Когда вы выбираете алгоритм Харриса, это значение представляет приближение собственных значений матрицы Харриса, вычисленной от результатов градиента. Объект возвращает угол для пикселей, где метрика собственного значения превышает этот порог. Угловые метрики Харриса находятся в области значений четвертой степени значений входного пикселя. Например, для 8-битного входного пикселя, выходной размер полной точности составляет 44 бита. Это значение снято к совпадающему типу данных как выход corner.

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

Зависимости

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

Чтобы включить этот аргумент, когда вы выберете алгоритм Харриса, установите ThresholdSource свойство к 'Input port'.

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

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

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

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

Для углов, обнаруженных с Алгоритмом FAST, это значение является контрастной метрикой, вычисленной при помощи суммы абсолютной разности (SAD) пикселей вокруг круга с центральным пиксельным значением. Метрика включает только те различия, которые превышают порог.

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

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

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

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

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

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

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

release(obj)

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

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

Алгоритмы

Этот объект реализует алгоритмы, описанные на странице с описанием блока Corner Detector.

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

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

Блоки

Объекты

Введенный в R2020a