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

В этом примере показано, как обнаружить углы в изображении с помощью блока 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, чтобы удалить эти побочные углы и сохранить углы цветка только. Область Filter Corner Points выбирает видимые области (ROIs) квадрата фиксированного размера, окружающие каждую обнаруженную угловую точку, и найдите среднее значение каждого ROI. Средние значения ROI, окружающих углы в темном фоне, будут ниже по сравнению с другими ROI. Чтобы отфильтровать эти побочные углы, модель выбирает желаемое количество углов, соответствующих ROI с более высокими средними значениями. Область Filter Corner Points состоит из этих блоков:

  • Выберите блок ROI — The MATLAB Function (Simulink), который генерирует технические требования квадратных ROI, окружающих каждый обнаруженный угол. Технические требования включают координаты левого верхнего угла и параметры ширины и высоты каждого ROI в форме [x y width height ]. Поскольку каждый ROI является квадратным здесь, значения ширины и параметров высоты являются тем же самым. Ширина каждого ROI установлена в 50 использование блока Constant (Simulink).

  • 2D Среднее значение — блок вычисляет среднее значение каждого, выбрал ROI во входном изображении.

  • Выберите блок Corners — The MATLAB Function (Simulink), который выбирает желаемое количество угловых точек, соответствующих ROI с самыми высокими средними значениями. Желаемый номер угловых точек определяется к 10 использование блока Constant (Simulink).

Симулируйте и отобразите результаты

Чтобы отобразить отфильтрованные угловые точки в изображении, модель использует блок Draw Markers и блок Video Viewer. Симулируйте модель и отобразите результаты.

sim(modelname);