Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Цветное изображение паровой машины
К этому изображению применен оператор Собеля.

Оператор Собеля , иногда называемый оператором Собеля – Фельдмана или фильтром Собела , используется в обработке изображений и компьютерном зрении , особенно в алгоритмах обнаружения краев , где он создает изображение, подчеркивающее края. Он назван в честь Ирвина Собела и Гэри Фельдмана, коллег из Стэнфордской лаборатории искусственного интеллекта (ПАРУС). Собел и Фельдман представили идею « Изотропного оператора градиента изображения 3x3» на лекции в SAIL в 1968 году. [1] Технически это оператор дискретного дифференцирования , вычисляющий аппроксимацию градиента.функции интенсивности изображения. В каждой точке изображения результатом оператора Собеля – Фельдмана является либо соответствующий вектор градиента, либо норма этого вектора. Оператор Собела – Фельдмана основан на свертке изображения с помощью небольшого разделяемого целочисленного фильтра в горизонтальном и вертикальном направлениях и, следовательно, относительно недорог с точки зрения вычислений. С другой стороны, приближение градиента, которое он производит, относительно грубое, особенно для высокочастотных вариаций изображения.

Формулировка [ править ]

Оператор использует два ядра 3 × 3, которые свертываются с исходным изображением для вычисления аппроксимации производных - одно для горизонтальных изменений и одно для вертикальных. Если мы определим A как исходное изображение, а G x и G y - это два изображения, которые в каждой точке содержат приближения горизонтальной и вертикальной производной соответственно, вычисления будут следующими: [2]

где здесь обозначает операцию свертки обработки двумерного сигнала .

Поскольку ядра Собеля можно разложить как продукты усреднения и ядра дифференцирования, они вычисляют градиент со сглаживанием. Например, можно записать как

Х координата определяется здесь как увеличение в «правильном» направлении оси, а у координата определяется как повышение в «вниз» -направлении. В каждой точке изображения полученные аппроксимации градиента можно объединить, чтобы получить величину градиента, используя:

Используя эту информацию, мы также можем вычислить направление градиента:

где, например, Θ равно 0 для более светлого вертикального края с правой стороны.

Более формально [ править ]

Поскольку функция интенсивности цифрового изображения известна только в дискретных точках, производные этой функции не могут быть определены, если мы не предположим, что существует лежащая в основе дифференцируемая функция интенсивности, которая была дискретизирована в точках изображения. С некоторыми дополнительными предположениями, производная непрерывной функции интенсивности может быть вычислена как функция от дискретизированной функции интенсивности, то есть цифрового изображения. Оказывается, производные в любой конкретной точке являются функциями значений интенсивности практически во всех точках изображения. Однако приближения этих производных функций могут быть определены с большей или меньшей степенью точности.

Оператор Собеля-Фельдмана представляет собой довольно неточную аппроксимацию градиента изображения, но все же имеет достаточное качество для практического использования во многих приложениях. Точнее, он использует значения интенсивности только в области 3 × 3 вокруг каждой точки изображения, чтобы аппроксимировать соответствующий градиент изображения, и он использует только целочисленные значения для коэффициентов, которые взвешивают интенсивности изображения, чтобы произвести аппроксимацию градиента.

Расширение на другие измерения [ править ]

Оператор Собеля – Фельдмана состоит из двух разделимых операций: [3]

  • Сглаживание перпендикулярно производному направлению с помощью треугольного фильтра:
  • Простая центральная разница в производном направлении:

Фильтры Собела – Фельдмана для производных изображений в различных измерениях с  :

1D:

2D:

3D:

4D:

Например, трехмерное ядро ​​Собеля – Фельдмана в z -направлении:

Технические детали [ править ]

Как следствие его определения, оператор Собеля может быть реализован простыми средствами как в аппаратном, так и в программном обеспечении: для вычисления соответствующего результата требуется только восемь точек изображения вокруг точки, а для вычисления приближения вектора градиента требуется только целочисленная арифметика. Кроме того, оба описанных выше дискретных фильтра можно разделить:

и две производные G x и G y, следовательно, могут быть вычислены как

В некоторых реализациях это разделяемое вычисление может быть выгодным, поскольку оно подразумевает меньшее количество арифметических вычислений для каждой точки изображения.

Применение свертки K к группе пикселей P может быть представлено в псевдокоде как:

N (x, y) = сумма {K (i, j) .P (xi, yj)} для i, j от -1 до 1.

N (x, y) представляет новую матрицу, полученную после применения свертки K к P , где P - матрица пикселей.

Пример [ править ]

Результатом оператора Собеля – Фельдмана является двумерная карта градиента в каждой точке. Его можно обрабатывать и просматривать так, как будто это само изображение, с областями с высоким градиентом (вероятными краями), видимыми в виде белых линий. Следующие изображения иллюстрируют это, показывая вычисление оператора Собеля-Фельдмана на простом изображении.

На изображениях ниже показано изменение направления градиента на круге в градациях серого. Когда знаки и одинаковы, угол градиента положительный, а когда разный - отрицательный. В приведенном ниже примере красный и желтый цвета на краю круга обозначают положительные углы, а синий и голубой цвета обозначают отрицательные углы. Вертикальные ребра на левой и правой сторонах круга имеют угол 0, потому что нет локального изменения . Горизонтальные края на верхней и нижней сторонах круга имеют углы -π/2 и π/2соответственно, потому что нет локального изменения в . Отрицательный угол для верхнего края означает переход от яркой области к темной, а положительный угол для нижнего края означает переход от темной области к яркой. Все остальные пиксели отмечены черным цветом из-за отсутствия локальных изменений ни в или , поэтому угол не определен. Поскольку угол является функцией отношения к пикселям с небольшой скоростью изменения, угол отклика может быть большим. В результате шум может иметь отклик под большим углом, что обычно нежелательно. При использовании информации об угле градиента для приложений обработки изображений следует попытаться удалить шум изображения, чтобы уменьшить этот ложный отклик.

Альтернативные операторы [ править ]

Оператор Собеля – Фельдмана, уменьшая количество артефактов, связанных с чистым оператором центральных разностей, не обладает идеальной симметрией вращения. Шарр попытался оптимизировать это свойство. [4] [5] Здесь были представлены ядра фильтров размером до 5 x 5, но наиболее часто используемые из них:

Это факторы аналогичным образом:

Операторы Шарра являются результатом оптимизации, сводящей к минимуму взвешенную среднеквадратичную угловую ошибку в области Фурье. Эта оптимизация выполняется при условии, что результирующие фильтры численно согласованы. Следовательно, они действительно являются производными ядрами, а не просто сохраняют ограничения симметрии. Оптимальный 8-битный целочисленный фильтр 3x3, вытекающий из теории Шарра, равен

Аналогичную стратегию оптимизации и результирующие фильтры также представили Фарид и Симончелли. [6] [7] Они также исследуют производные схемы высшего порядка. В отличие от работы Шарра, эти фильтры не требуют согласованности числовых значений.

Проблема создания производных фильтров была повторно рассмотрена, например, Круном. [8]

Производные фильтры на основе произвольных кубических сплайнов были представлены Хастом. [9] Он показал, как производные первого и второго порядка могут быть правильно вычислены с использованием кубических или тригонометрических сплайнов с помощью подхода двойной фильтрации, дающего фильтры длины 7.

Другой подобный оператор, который был первоначально сгенерирован из оператора Собеля, это оператор Каяли [10], фильтр свертки 3x3 на основе совершенной симметрии вращения.

Оптимальные по ориентации производные ядра резко сокращают систематические ошибки оценки при оценке оптического потока . Более крупные схемы с еще более высокой точностью и оптимизированные семейства фильтров для расширенной оценки оптического потока были представлены в последующей работе Шарра. [11] Наборы производных фильтров второго порядка были исследованы для прозрачной оценки движения . [12] Было замечено, что чем больше получаемые ядра, тем лучше они аппроксимируют производную гауссовых фильтров.

Примеры сравнений [ править ]

Здесь четыре различных оператора градиента используются для оценки величины градиента тестового изображения.

Реализация псевдокода [ править ]

функция sobel ( A: как массив двумерных изображений ) Gx = [ - 1 0 1 ; - 2 0 2 ; - 1 0 1 ]          Gy = [ - 1 - 2 - 1 ; 0 0 0 ; 1 2 1]          строки = размер ( A , 1 )   столбцы = размер ( A , 2 )   mag = нули ( A )  для i = 1 : строк - 2 для j = 1 : столбцов - 2 S1 = сумма ( сумма ( Gx . * A ( i : i + 2 , j : j + 2 )))  S2 = сумма ( сумма ( Gy . * A ( i : i + 2 , j : j + 2 )))  mag ( я + 1 , j + 1 ) = sqrt ( S1 . ^ 2 + S2 . ^ 2 )   конец для конец для порог = 70 % зависит от приложения [0 255]   output_image = max ( mag , порог )   output_image ( output_image == round ( порог )) = 0 ;    вернуть output_image конечная функция 

См. Также [ править ]

  • Цифровая обработка изображений
  • Обнаружение функций (компьютерное зрение)
  • Извлечение признаков
  • Оператор Лапласа
  • Оператор Prewitt

Ссылки [ править ]

  1. ^ Ирвин Собел, 2014, История и определение оператора Собеля
  2. ^ Функциональные детекторы - Детектор края Собеля
  3. ^ К. Энгель (2006). Объемная графика в реальном времени . С. 112–114.
  4. ^ Шарр, Ханно, 2000, Диссертация (на немецком языке), Оптимальные операторы в цифровой обработке изображений .
  5. ^ B. Jähne, H. Scharr и S. Körkel. Принципы построения фильтров. В Справочнике по компьютерному зрению и приложениям. Академик Пресс, 1999.
  6. ^ Х. Фарид и Е.П. Симончелли, Оптимально эквивалентные вращению направленные производные ядра , Международная конференция «Компьютерный анализ изображений и паттернов», стр. 207–214, сентябрь 1997 г.
  7. ^ Х. Фарид и Е.П. Симончелли, Дифференциация дискретных многомерных сигналов , IEEE Trans Image Processing, том 13 (4), стр. 496–508, апрель 2004 г.
  8. ^ D. Kroon, 2009, Краткая статья University Twente, Численная оптимизация производных изображений на основе ядра .
  9. ^ A. Hast., "Простая конструкция фильтра для производных первого и второго порядка с помощью подхода двойной фильтрации" , Pattern Recognition Letters, Vol. 42, № 1, июнь, стр. 65–71. 2014 г.
  10. ^ Дим, Жюль Р .; Такамура, Тамио (11 декабря 2013 г.). «Альтернативный подход к классификации спутникового облака: приложение с граничным градиентом» . Успехи в метеорологии . 2013 : 1–8. DOI : 10.1155 / 2013/584816 . ISSN 1687-9309 . 
  11. ^ ScHARR, Ханно (2007). «Оптимальные фильтры для расширенного оптического потока». Сложное движение . Конспект лекций по информатике. 3417 . Берлин, Гейдельберг: Springer Berlin Heidelberg. С. 14–29. DOI : 10.1007 / 978-3-540-69866-1_2 . ISBN 978-3-540-69864-7.
  12. ^ Шарр, Ханно, ОПТИМАЛЬНЫЕ СЕМЕЙСТВА ПРОИЗВОДНЫХ ФИЛЬТРОВ ВТОРОГО ПОРЯДКА ДЛЯ ОЦЕНКИ ПРОЗРАЧНОГО ДВИЖЕНИЯ 15-я Европейская конференция по обработке сигналов (EUSIPCO 2007), Познань, Польша, 3–7 сентября 2007 г.

Внешние ссылки [ править ]

  • Обнаружение края Собеля в OpenCV
  • Sobel Filter в библиотеке Python SciPy
  • Библиографические ссылки на Ирвина Собела в DBLP
  • Пример обнаружения края Собеля с использованием компьютерных алгоритмов