Лапласово-гауссовский фильтр - PullRequest
1 голос
/ 21 октября 2010

Я пытаюсь выполнить некоторую обработку изображения и хотел бы применить ядро ​​LoG. Я знаю формулу, которая выглядит так:

alt text

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

Кроме того, у меня такой же вопрос с лапласовским файлером. Я знаю формулу, которая является:

alt text

а также, из того, что я прочитал, фильтр 3 x 3 должен быть матрицей:

x = [1 1 1; 1 -4 1; 1 1 1]

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

1 Ответ

2 голосов
/ 25 октября 2010

По сути, мы просто идем из непрерывного пространства в дискретное пространство.Первая производная по непрерывному времени (пространству) аналогична первой разнице по дискретному времени (пространству).Чтобы вычислить первое различие сигнала с дискретным временем, вы свертываете [1 -1] над сигналом.Чтобы вычислить второе различие, вы свертываете сигнал с [1 -2 1] (который [1 -1] свертывается с самим собой, или, что эквивалентно, свертываете сигнал с [1 -1] дважды).

Чтобы вычислить второе различие в дваразмеры, вы сверните входное изображение с матрицей, которую вы упомянули в своем вопросе.Это означает, что вы берете маску 3 на 3 (т. Е. Матрицу, которую вы упомянули), умножаете все девять чисел на девять пикселей изображения и суммируете произведения, чтобы получить один выходной пиксель.Затем вы сдвигаете маску вправо и делаете это снова.Каждый сдвиг даст один выходной пиксель.Вы делаете это по всему изображению.

Чтобы получить маску для фильтра Гаусса, просто выберите двумерную функцию Гаусса для любой произвольной сигма.

Это может помочь: сверткаматрица , фильтр Гаусса

...