В этом примере показано, как обнаружить углы в изображении с помощью блока Corner Detection.
Откройте модель Simulink ®.
modelname = 'ex_blkCornerDetection.slx';
open_system(modelname)
Модель считывает входное изображение RGB с помощью блока Image From File и преобразует его в изображение интенсивности с помощью блока Color Space Conversion.
Чтобы обнаружить углы в вход изображении, модель использует блок Corner Detection. Блок использует Harris corner detection
и устанавливает параметр Максимальное количество углов в 25
.
Модель использует блок Draw Markers и блок Video Viewer, чтобы отобразить все обнаруженные углы во входном изображении.
Отображаемое изображение показывает некоторые паразитные углы в пределах темного фона изображения. Модель использует другие блоки в области Filter Corner Points, чтобы удалить эти ложные углы и сохранить только углы цветка. Область Точек угла фильтра выбирает квадратные видимые области (ROIs) фиксированного размера, окружающий каждую обнаруженную угловую точку, и находит среднее значение каждой информации только для чтения. Средние значения ROI, окружающие углы в темном фоне, будут ниже по сравнению с другими ROI. Чтобы фильтровать эти ложные углы, модель выбирает желаемое количество углов, соответствующих ROI с более высокими средними значениями. Область Filter Corner Points состоит из следующих блоков:
Выберите информация только для чтения - Блок Функция MATLAB (Simulink), который генерирует спецификации квадратных ROI, окружающих каждый обнаруженный угол. Спецификации включают координаты верхнего левого угла, и параметры ширины и высоты каждого информация только для чтения в форме [x y width height
]. Поскольку каждый информация только для чтения здесь квадратный, значения ширины и параметров высоты одинаковы. Ширина каждого информация только для чтения установлена на 50
использование блока Constant (Simulink).
2-D Mean - блок вычисляет среднее значение каждого выбранного информация только для чтения на входном изображении.
Выберите углы - Функцию MATLAB (Simulink) блок, который выбирает желаемое количество угловых точек, соответствующих ROIs с самыми высокими средними значениями. Желаемое количество угловых точек устанавливается равным 10
использование блока Constant (Simulink).
Чтобы отобразить отфильтрованные угловые точки на изображении, модель использует блок Draw Markers и блок Video Viewer. Симулируйте модель и отобразите результаты.
sim(modelname);