Авторы: Попов Е.В., асс. Козаченко А.А.
Национальный горный университет, Украина
Обзор распространённых методов выделения границ на изображениях.
Данная статья посвящена обзору самых известных и
часто используемых алгоритмов выделения границ объектов на изображениях:
методам Робертса, Превитта и Собеля.
Вышеуказанные методы основываются на разрывности
(разбиении
изображения на основании резкого изменения сигнала) -
одном из базовых свойств сигнала яркости. Поиск разрывов осуществляется
обработкой изображения с помощью скользящей маски, которую
также называют ядром, фильтром,
окном или шаблоном и которая
представляет собой некую квадратную матрицу, соответствующую указанной группе
пикселей исходного изображения. Элементы матрицы принято называть коэффициентами. Оперирование такой матрицей в каких-либо локальных преобразованиях
называется пространственной
фильтрацией либо просто фильтрацией.
Рис. 1. Схема
пространственной фильтрации
Процесс фильтрации
происходит путём перемещения маски фильтра от одной точки изображения к другой.
В каждой точке (x,y) вычисляется отклик фильтра с использованием
предварительно заданных связей. Для линейной
пространственной фильтрации отклик задается суммой произведения коэффициентов
фильтра на соответствующие значения пикселей в области, покрытой маской
фильтра.
Для маски 3х3 элемента, показанной на рисунке 1,
результат (отклик) R линейной фильтрации в точке (x,y) изображения составит:
Другими словами, отклик является суммой произведений коэффициентов
маски на значения пикселей непосредственно под маской. Маска центрирована в
точке (x,y), на что указывает коэффициент w(0,0) стоящий при значении f(x,y).
При
обнаружении перепадов яркости используются дискретные аналоги производных
первого и второго порядка. Для упрощенной иллюстрации действия операторов
ограничимся рассмотрением одномерных производных.
Первая производная одномерной функции f(x) определяется как разность значений соседних элементов:
Запись в виде частной производной использована
здесь для того, чтобы сохранить те же обозначения в случае двух переменных f(x,y),
где придется иметь дело с частными производными по двум пространственным осям.
Вторая производная определяется, как разность
соседних значений первой производной:
Вычисление первой производной цифрового
изображения основано на различных дискретных приближениях двумерного градиента.
По определению, градиент изображения f(x,y) в точке (x,y) — это вектор [2]:
Из курса математического анализа известно, что
направление вектора градиента совпадает с направлением максимальной скорости
изменения функции f в точке (x,y)
[2].
Важную роль при обнаружении контуров играет
модуль этого вектора, который обозначается ∇f и равен
Эта величина равна значению максимальной скорости
изменения функции f в точке (x,y) и её максимум
достигается в направлении вектора ∇f. Величину ∇f также часто называют градиентом.
Направление вектора градиента также является
важной характеристикой. Обозначим через α(x,y) угол
между направлением вектора ∇f в точке (x,y) и осью x. Как известно из математического анализа [2]:
Отсюда легко найти направление контура в точке (x,y),
которое перпендикулярно направлению вектора градиента в этой точке. А вычислить
градиент изображения можно, вычислив величины частных производных ∂f/∂x и ∂f/∂y для каждой точки.
Оператор Робертса
Пусть область 3х3, представляет собой значения
яркости в окрестности некоторого элемента изображения.
Рис. 2. Окрестность 3х3 внутри изображения
Один из простейших способов нахождения первых
частных производных в точке состоит в применении
следующего перекрестного градиентного оператора Робертса [1]:
и
Эти производные могут быть реализованы путем
обработки всего изображения с помощью оператора, описываемого масками на
рисунке 3, используя процедуру фильтрации, описанную ранее.
Рис. 3. Маски оператора Робертса
Реализация масок размерами (2х2) является не очень удобной из-за
отсутствия центрального элемента, что в то же время влечёт за собой полезное
свойство данного алгоритма – высокую скорость обработки изображения.
Оператор Превитта
Оператор Превитта, так же как и оператор
Робертса, оперирует с областью изображения 3х3, представленной на рисунке 2,
только использование такой маски задается другими выражениями:
и
В этих формулах разность между суммами по верхней
и нижней строкам окрестности 3х3 является приближенным значением производной по
оси x, а разность между суммами по первому и последнему
столбцам этой окрестности – производной по оси y. Для
реализации этих формул используется оператор, который называется оператором
Превитта.
Рис. 4. Маски оператора Превитта
Оператор Собеля
Оператор Собеля тоже использует область
изображения 3х3, отображенную на рисунке 2. Он довольно похож на оператор
Превитта, а видоизменение заключается в использовании весового коэффициента 2
для средних элементов:
и
Это увеличенное значение используется для
уменьшения эффекта сглаживания за счет придания большего веса средним точкам.
Рис. 5. Маски оператора Собеля
Рассмотренные выше маски применяются для
получения составляющих градиента . Для вычисления величины градиента эти
составляющие необходимо использовать совместно:
или
Примеры использования операторов
Рис.
6. Исходное изображение Рис. 7. Применён оператор Робертса
Рис. 8. Применён оператор Превитта Рис. 9. Применён оператор Собеля
Выводы
Рассмотренные методы выделения границ находят широкое
применение в области компьютерного зрения. Их используют для предварительной
обработки изображения перед распознаванием контуров. Несмотря на схожесть
реализации (математически, все методы являются вариациями градиента, а
программно реализованы в виде матричных фильтров), данные методы обладают
отличительными особенностями, которые делают целесообразным применение каждого
из них на разных этапах обработки изображения.
Список литературы
1.
Р. Гонсалес, Р. Вудс Цифровая обработка изображений — М:
Техносфера, 2005 – 1007с
2.
Кудрявцев Л.В. Краткий курс математического анализа – M.: Наука,
1989 – 736с
3.
Анисимов Б.В. Распознавание и цифровая обработка изображений – М.:
Высш. школа, 1983 – 295с