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