Обычный способ обработки состоит в том, чтобы применять фильтр независимо в направлениях x и y. Таким образом, ваш общий фильтр g(x,y) = f(x) * f(y)
.
В такой ситуации g(x,y)
называется отделяемым фильтром , и преимущество заключается в том, что, применяя x- и y-фильтры по отдельности, прямая свертка фильтра принимает O (XYF) время, где X и Y - размеры изображения, а F - ширина опоры фильтра f()
. Для произвольного неразделимого фильтра того же размера (который будет иметь O (F ^ 2) выборок) обычно требуется O (X Y F ^ 2) времени ...
Если вы действительно хотите применить к своему изображению полный фильтр sinc () (== sin(x)/x
), неограниченная поддержка функции sinc () сделает прямую свертку очень медленной. В этом случае было бы быстрее сделать 2D-БПФ изображения, отфильтровать его в частотной области и преобразовать обратно.
На практике, однако, большинство людей используют оконную или другую модификацию, чтобы получить конечный фильтр, который может быть практически применен в пространственной области.