Находит углы с помощью алгоритма FAST или Harris
The visionhdl.CornerDetector
Системная object™ обнаруживает углы с помощью алгоритма FAST или алгоритма пересекающихся ребер (Harris). Для каждого пикселя, если пиксель является углом, объект возвращает угловую метрику. Если пиксель не является углом, объект возвращает значение пикселя, равное нулю.
Алгоритм FAST проверяет округлую область вокруг потенциального центра угла. Тест обнаруживает угол, если смежная секция пикселей либо ярче, чем центр плюс порог, либо темнее, чем центр минус порог. Можно задать минимальный порог контрастности как свойство или аргумент и выбрать из трех правил, чтобы задать угол. Эти правила определяют, сколько пикселей в круге пикселей должно превысить минимальную контрастность для центрального пикселя, которая должна считаться углом. Объект выполняет параллельные тесты всех комбинаций смежных пикселей вокруг круга. Алгоритм FAST использует немного аппаратных ресурсов.
Алгоритм Харриса вычисляет горизонтальный и вертикальный градиенты, фильтрует градиентные компоненты с помощью кругового Гауссова фильтра 5 на 5 и вычисляет метрику, которая представляет силу угла. Можно задать порог, который определяет уровень, на котором обнаруживаются углы. Объект возвращает угол для пикселей, где метрика превышает этот порог. Алгоритм Харриса использует больше аппаратных ресурсов, чем алгоритм FAST, но может обнаружить углы, которые может не найти алгоритм FAST.
Чтобы обнаружить углы в потоке пикселей:
Создайте visionhdl.CornerDetector
Объекту и установите его свойства.
Вызывайте объект с аргументами, как будто это функция.
Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».
corners = visionhdl.CornerDetector(
возвращает детектор угла Системный объект. Задайте свойства с помощью одной или нескольких пар "имя-значение". Заключайте каждое имя свойства в одинарные кавычки. Name
,Value
)
Для примера:
corners = visionhdl.CornerDetector('Method','FAST 7 of 12',... 'MinContrastSource','Input port',... 'PaddingMethod','None')
[
задает порог, который определяет угол как входной параметр. Этот синтаксис применим как для алгоритмов Harris, так и для FAST. Порог интерпретируется по-разному для каждого алгоритма. Чтобы включить этот аргумент при использовании алгоритма FAST, установите corner
,ctrlOut
] = corners(pixelIn
,thresh
,ctrlIn
)MinContrastSource
свойство к 'Input port'
. Чтобы включить этот аргумент при использовании алгоритма Харриса, установите ThresholdSource
свойство к 'Input port'
.
Этот объект использует интерфейс потокового пикселя со структурой для сигналов управления системой координат. Этот интерфейс позволяет объекту работать независимо от размера и формата изображения и соединяться с другими объектами Vision HDL Toolbox™. Объект принимает и возвращает скалярное значение пикселя и сигналы управления как структуру, содержащую пять сигналов. Сигналы управления указывают валидность каждого пикселя и его местоположение в системе координат. Чтобы преобразовать пиксельную матрицу в поток пикселей и сигналы управления, используйте visionhdl.FrameToPixels
объект. Полное описание интерфейса см. в разделе Потоковый пиксельный интерфейс.
Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj
, используйте следующий синтаксис:
release(obj)
Этот объект реализует алгоритмы, описанные на Corner Detector блочных страниц с описанием.