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

В этом примере показано, как обнаружить углы в изображении с помощью блока Corner Detection.

Модель в качестве примера

Откройте модель Simulink®.

modelname = 'ex_blkCornerDetection.slx';
open_system(modelname)

Считайте входное изображение

Модель читает изображение входа RGB с помощью блока Image From File и преобразует его в изображение интенсивности с помощью блока Color Space Conversion.

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

Чтобы обнаружить углы во входном изображении, модель использует блок Corner Detection. Блок использует метод детектирования углов методом Харриса, и значением Максимального количества углового параметра является 25.

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

Отфильтруйте обнаруженные углы

Отображенное изображение показывает некоторые побочные углы в темном фоне изображения. Модель использует другие блоки в области Filter Corner Points, чтобы удалить эти побочные углы и сохранить углы цветка только. Область Filter Corner Points выбирает фиксированный размер, квадратные видимые области (ROIs) вокруг каждой обнаруженной угловой точки, и затем находит среднее значение каждого ROI. Средние значения ROI вокруг углов, обнаруженных в темном фоне, ниже, чем другие ROI. Чтобы отфильтровать эти побочные углы, модель выбирает желаемое количество углов от тех, которые соответствуют ROI с самыми высокими средними значениями. Область Filter Corner Points включает эти блоки:

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

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

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

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

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

sim(modelname);