Я пишу программу, которая будет вычислять БПФ изображения, применять простые фильтры в частотной области, а затем выполнять обратное БПФ для отображения отфильтрованного изображения во временной области.
Я сделал следующее:
Создайте матрицу NxN, где N*N является степенью числа 2, а N больше, чем ширина и высота исходного изображения.
Инициализируйте матрицу комплексом 0+0i. Эффективное заполнение изображения нулями.
Центрируйте исходное изображение в матрице, взяв журнал значений каждого пикселя, чтобы в конечном итоге их можно было отобразить в видимом диапазоне в частотной области. Я обрабатываю каждый элемент цвета R/G/B в отдельной матрице.
Преобразуйте матрицу в одномерный массив и выполните одномерное БПФ для данных. Позже я обновлю это до 2D FFT.
Примените фильтр к частотным данным. В этом случае я использую круг в центре частотных данных. Это должно действовать как фильтр верхних частот, если данные за пределами круга исключены, или как фильтр нижних частот, если данные внутри круга исключены. Чтобы применить фильтр, я заменяю значение комплексного числа для отклоненных частот на 0+0i. Это должно быть таким же, как умножение на матрицу фильтра 1 для пропускаемых частот и 0 для отклоненных частот.
Выполните обратное БПФ на отфильтрованных частотных данных и создайте отфильтрованное изображение во временной области.
Кажется, все работает, за одним исключением:
Когда я использую частотный фильтр, который включает точку в центре частотной области, обратное БПФ завершается успешно и создает изображение только с высокими частотами.
Когда я использую частотный фильтр, который исключает точку в центре изображения, результирующее обратное БПФ дает полностью черное изображение.
Я не уверен, почему весь результат изображения черный. Я ожидаю, что он будет содержать все низкочастотные данные. Должен ли фильтр быть симметричным? Есть ли что-то особенное в частотной точке в начале координат, что я упустил?
pixel = (pixel-min) / (max-min)
- person Sam   schedule 20.11.2013NaN
,INF
? Не могли бы вы предоставить код? - person Sam   schedule 20.11.2013