Фильтр Собеля: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
 
(не показана 1 промежуточная версия этого же участника)
Строка 6: Строка 6:


=== Математическое описание алгоритма ===
=== Математическое описание алгоритма ===
Исходные данные:
* изображение <math>A^{N\cdot M}</math>
Вычисляемые данные:
* матрица аппроксимации модуля градиента <math>G^{N\cdot M}</math>
* матрица аппроксимации направления градиента <math>\Theta^{N\cdot M}</math>
Это матрицы такого же размера, как исходное изображение, так как параметры градиента вычисляются для каждого пикселя изображения.
Промежуточные горизонтальные и вертикальные производные вычисляются с помощью следующих двумерных сверток:
<math>
\mathbf{G}_x = \begin{bmatrix}
+1 & 0 & -1  \\
+2 & 0 & -2 \\
+1 & 0 & -1
\end{bmatrix} * \mathbf{A}
,\
\mathbf{G}_y = \begin{bmatrix}
+1 & +2 & +1\\
0 & 0 & 0 \\
-1 & -2 & -1
\end{bmatrix} * \mathbf{A}
</math>
Аппроксимации для модуля и направления градиента можно получить, скомбинировав эти производные:
<math>\mathbf{G} = \sqrt{ {\mathbf{G}_x}^2 + {\mathbf{G}_y}^2 }</math>
<math>\mathbf{\Theta} = \operatorname{atan}\left({ \mathbf{G}_y \over \mathbf{G}_x }\right)</math>
=== Вычислительное ядро алгоритма ===
=== Вычислительное ядро алгоритма ===
Вычислительное ядро совпадает с алгоритмом, так как все описанные операции выполняются за <math>O(M\cdot N)</math> на одном изображении.
=== Макроструктура алгоритма ===
=== Макроструктура алгоритма ===
=== Схема реализации последовательного алгоритма ===
=== Схема реализации последовательного алгоритма ===

Текущая версия от 17:44, 17 октября 2017

Свойства и структура алгоритма

Общее описание алгоритма

Фильтр Собеля - дискретный дифференциальный оператор, который используется для приближения градиента яркости изображения. Он часто используется в алгоритмах выделения границ при обработке изображений. Фильтр Собеля был предложен Ирвином Собелем и Гэри Фелдманом в лаборатории искусственного интеллекта Стэнфорда в 1968.

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

Математическое описание алгоритма

Исходные данные:

  • изображение [math]\displaystyle{ A^{N\cdot M} }[/math]

Вычисляемые данные:

  • матрица аппроксимации модуля градиента [math]\displaystyle{ G^{N\cdot M} }[/math]
  • матрица аппроксимации направления градиента [math]\displaystyle{ \Theta^{N\cdot M} }[/math]

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

Промежуточные горизонтальные и вертикальные производные вычисляются с помощью следующих двумерных сверток:

[math]\displaystyle{ \mathbf{G}_x = \begin{bmatrix} +1 & 0 & -1 \\ +2 & 0 & -2 \\ +1 & 0 & -1 \end{bmatrix} * \mathbf{A} ,\ \mathbf{G}_y = \begin{bmatrix} +1 & +2 & +1\\ 0 & 0 & 0 \\ -1 & -2 & -1 \end{bmatrix} * \mathbf{A} }[/math]

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

[math]\displaystyle{ \mathbf{G} = \sqrt{ {\mathbf{G}_x}^2 + {\mathbf{G}_y}^2 } }[/math]

[math]\displaystyle{ \mathbf{\Theta} = \operatorname{atan}\left({ \mathbf{G}_y \over \mathbf{G}_x }\right) }[/math]

Вычислительное ядро алгоритма

Вычислительное ядро совпадает с алгоритмом, так как все описанные операции выполняются за [math]\displaystyle{ O(M\cdot N) }[/math] на одном изображении.

Макроструктура алгоритма

Схема реализации последовательного алгоритма

Последовательная сложность алгоритма

Информационный граф

Ресурс параллелизма алгоритма

Входные и выходные данные алгоритма

Свойства алгоритма

Программная реализация алгоритма

Особенности реализации последовательного алгоритма

Локальность данных и вычислений

Локальность реализации алгоритма

Структура обращений в память и качественная оценка локальности
Количественная оценка локальности

Возможные способы и особенности параллельной реализации алгоритма

Масштабируемость алгоритма и его реализации

Масштабируемость алгоритма

Масштабируемость реализации алгоритма

Динамические характеристики и эффективность реализации алгоритма

Выводы для классов архитектур

Существующие реализации алгоритма

Литература