Я пытаюсь реализовать размытие по Гауссу для школьного проекта. Мне нужно сделать как CPU, так и GPU, чтобы сравнить производительность.
Я не совсем уверен, что понимаю, как работает размытие по Гауссу. Итак, один из моих вопросов - правильно ли я это понял?
Вот что я делаю сейчас: я использую уравнение из википедии http://en.wikipedia.org/wiki/Gaussian_blur для расчета фильтра. Для 2d я беру RGB каждого пикселя изображения и применяю к нему фильтр, умножая RGB пикселя и окружающих пикселей на соответствующую позицию фильтра. Затем они суммируются, чтобы получить новые значения RGB пикселя. Для 1d я применяю фильтр сначала по горизонтали, а затем по вертикали, что должно дать тот же результат, если я правильно понимаю. Это точно такой же результат, как и при применении 2-мерного фильтра?
Другой вопрос, который у меня есть, касается того, как можно оптимизировать алгоритм. Я читал, что быстрое преобразование Фурье применимо к размытию по Гауссу. Но я не могу понять, как это связать. Может кто подскажет в правильном направлении?
Спасибо.