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

Материал из Алговики
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Строка 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>
 +
 
=== Вычислительное ядро алгоритма ===
 
=== Вычислительное ядро алгоритма ===
 
=== Макроструктура алгоритма ===
 
=== Макроструктура алгоритма ===

Версия 20:40, 17 октября 2017

Содержание

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

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

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

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

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

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

  • изображение [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]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 Литература