Обнаружение углов в изображении

В этом примере показано, как обнаружить углы в изображении с помощью блока 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);