Олдскулы свело: операторы Собела и Канни
Операторы Собела и Канни, как мы писали в предыдущем посте, стали первыми мощными инструментами, сыгравшими огромную роль в развитии CV.
Почему?
Оператор Собела помогает выявить изменения яркости в изображении, что позволяет находить края объектов.
Как это работает? Допустим, у вас есть фотография, и вы хотите найти на ней границы всех объектов. Оператор Собела берет небольшие области изображения (обычно 3x3 пикселя) и проверяет, как меняется яркость в горизонтальном и вертикальном направлениях. Результат получается за счет применения специальных матриц, называемых фильтрами Собела, которые и выделяют эти изменения.
Оператор Канни — это уже более сложный инструмент для выделения границ. Разработанный Джоном Канни в 1986 году, этот метод до сих пор считается одним из лучших для выявления краев на изображениях.
Оператор Канни использует несколько этапов для достижения точного результата:
Фильтрация шума
Первым делом изображение сглаживается с помощью фильтра Гаусса, чтобы уменьшить шум.
Поиск градиентов
Затем вычисляются градиенты изображения, чтобы определить изменения яркости.
Подавление немаксимумов
Далее проверяется, какие из найденных границ являются локальными максимумами.
Двойная пороговая обработка
В конце применяется двойной порог для выделения сильных и слабых границ, а затем проводится соединение краев.
Даже сейчас операторы Собела и Канни остаются важными инструментами в арсенале ML-инженеров. Их эффективность и простота делают их незаменимыми для многих задач, от предварительной обработки изображений до анализа в реальном времени.
А примеры кода на Python для операторов Собела и Канни вы можете посмотреть по этой ссылке.