Русская Википедия:Оператор Ротуэлла
Оператор Ротуэлла, в дисциплине компьютерного зрения — оператор для обнаружения границ, представленный Чарлзом Ротуэллом (Шаблон:Lang-en) на Симпозиуме IEEE по компьютерному зрению[1] в 1995 году.
В целом, оператор Ротуэлла очень похож на оператор Кэнни, разница между ними в том, что алгоритм Ротуэлла использует Шаблон:Не переведено 2 вместо подавления немаксимумов (Шаблон:Lang-en), и что динамическое определение порога (Шаблон:Lang-en) используется вместо гистерезиса.
Причины создания
Авторы метода считали, что подавление немаксимумов некорректно работает на переходах в изображениях из-за процесса сглаживания. От гистерезиса авторы отказались из-за убеждения, что яркость края не имеет принципиального значения для более высокого уровня визуальной обработки, в частности, в распознавании объектов. Гораздо важнее для них была контрастность.
Основные этапы алгоритма
Первичная обработка. Изображение сглаживается с помощью дискретной выборки двумерного фильтра Гаусса. Здесь плавно используются отдельные одномерные ядра Гаусса последовательно в х и у направлениях. «Хвост» ядра свертки составляет 1,5 % от её центральных значений. Затем находится градиент для каждой точки изображения. <math>S_x</math> и <math>S_y</math> вычисляется с помощью центральных конечных разностей операторов вида [-1,0,1]. |ΔS| (для удобства обозначается через N) и θ вычисляются для каждой точки с помощью выражений, аналогичных в операторе Canny:
- <math>\mathbf{N} = \sqrt{ {\mathbf{S}_x}^2 + {\mathbf{S}_y}^2 }</math>
- <math>\mathbf{\Theta} = \operatorname{arctan}\left({ \mathbf{S}_y \over \mathbf{S}_x }\right).</math>
Субпиксельная локализация. Для каждого пикселя, у которого N > <math>t_l</math> (где <math>t_l</math> это заранее заданный порог), где фактически будут лежать Шаблон:Не переведено 2, используется техника поиска локальных максимумов оператора Кэнни. Места краевых пикселей найдены путём оценки пересечения второй производной с нулем в направлении нормали к контуру касательной.
Определение порога изображения. После определения N и θ появляется проблема разделения краевых пикселей и остальных точек. Это производится с помощью динамического определения порога (Шаблон:Lang-en), то есть оператор определяет значение порога, которое варьируется в зависимости от изображения. Порог поверхности (<math>N_{x,y}</math> на дискретных областях изображения) вычисляется и используется для классификации edgels-пикселей всякий раз, когда <math>N_{x,y}</math> > α<math>T_{x,y}</math> (использование константы 0 < α ≤ 1 описывается ниже). <math>T_{x,y}</math> определяется с помощью элементов множества Σ<math>_0</math>. Эти edgels обеспечивают хорошее представление о сильных edgels в локальной области. Поэтому <math>T_{x,y}</math> мы присваиваем значение <math>N_{x,y}</math> для каждого (х, у) є Σ<math>_0</math>, а затем формирует кусочно-плоскую поверхность, интерполированую для всех остальных (х, у). Выбор порога изображения продолжается сравнением значения <math>N_{x,y}</math> и пороговой функции <math>T_{x,y}</math> и классификации точки (х, у) как edgel, если первый составляет не менее 90 % от последнего. Параметр α вводится учета случая, при котором сильные edgel могут стать немного дальше к переходу. Все пиксели, которые проходят пороговый тест включены в множество Σ, очевидно, что Σ<math>_0</math> входит в Σ.
Истончение. Процесс определения порога даёт изображение множества элементов Σ, членами которого являются связанные краевые пиксели. Элемент является «соседом» другого элемента, если он находится на расстоянии не более 1 пикселя от него, то есть, принадлежит квадрату 3х3, центром которого является второй элемент. Ширина множества часто равна двум или трем точкам и поэтому не представляет топологии цифровой кривой. Подмножества утончаются до цепей единичной толщины. Этот процесс основан на алгоритме истончения Цао-Фу. Он работает таким образом, чтобы не сокращать edgels цепи, которые имеют свободный конец (то есть edgels, с которыми связана только одна edgel). Тем не менее, истончение Цао-Фу рассматривает все элементы множества в равной степени, так, например, сильные edgel могут быть убраны в отличие от более слабой точки. Так что сохраняется локализация хребтов, упорядочиваются члены Σ, а слабые элементы удаляются в первую очередь. Истонченное множество называется Σ<math>_t</math>
Получение топологического описания. Учитывая Σ<math>_t</math>, извлекается топологическое описание из дискретных изображений и с ним ассоциируется субпиксельная геометрическая интерпретация. Все элементы в Σ<math>_t</math> составляют сеть вершин краев поверхности (vertex-edge-face network). Вершины расположены на edgels, которые имеют либо только одного соседа (в этом случае они являются концами edgel-цепочки), либо которые имеют более двух связанных с ними edgels. Топологически угловая точка определяется при встречи двух edgel-цепей содержахщихся в пределах одного ребра. Сегментация края в таких угловых точках не производится. Как только вершины получены, осуществляется проход по edgel-цепям между ними с помощью маски 3 на 3. Поскольку каждый edgel добыт, его суб-пиксели записывается в список.
См. также
- Оператор Кэнни
- Оператор Айверсона
- Градиент
- Выделение границ
- Оператор Собеля
- Компьютерное зрение
- Оператор Прюитта
- Перекрёстный оператор Робертса
Примечания
Литература
- C. A. Rothwell, J. L. Mundy, W. Hoffman, V.D. Nguyen «Driving Vision by Topology», 1995.
- Tsao, Y.F. and Fu, K.S. "Parallel Thinning Operations for Digital Binary Images, " Proceedings CVPR, p. 150-155, 1981.
Ссылки
- Реализация метода на языке C++
- C. A. Rothwell, J. L. Mundy, W. Hoffman, V.D. Nguyen «Driving Vision by Topology»
- Другие работы C. A. RothwellШаблон:Недоступная ссылка