Функции > Обработка изображений > Область преобразования > Пример. Фильтрация в области преобразования Фурье
  
Пример. Фильтрация в области преобразования Фурье
Используйте функции funconv, matconv, funcdeconv и matdeconv, чтобы свернуть или развернуть изображение с функцией f или маской E с помощью умножения обеих в пространственной частоте (область преобразования Фурье). В результате фильтрации в частотной области могут иметь место различные операции сглаживания, обнаружения краев и периодического шумоподавления в зависимости от выбранной функции или маски. Проведение фильтрации в области преобразования часто оказывается математически более эффективным или облегчает определение фильтров в сравнении с использованием свертки в области изображения.
Сведения об использовании этого примера см. в разделе Сведения о примерах обработки изображений.
funconv
Используйте эту функцию, чтобы фильтровать изображение M с функцией в пространственной частоте. Действительная функция f используется, чтобы сконструировать маску N того же размера, что и M. M преобразуется по алгоритму Фурье и затем умножается поэлементно на маску.
Маска конструируется путем передачи аргументов f, которые являются нормированным расстоянием от верхнего левого угла M. Данный процесс продолжается до центра маски, в точке которого маска симметрично дублируется в четыре элемента. Данный процесс используется из-за того, что левый верхний угол — это постоянный электрический ток (нулевая частота).
1. Начните конструировать маску, определяя матрицу изображения M.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
2. Найдите пиксел, который представляет центр матрицы изображения.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
3. Создайте новые переменные диапазона, представляющие значения от верхнего левого угла к центру изображения.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
4. Используйте определенные переменные диапазона и функцию маскирования, чтобы создать верхний левый квадрант маски.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Записью (0, 0) является f(0), а записью (r, c)f(1).
Маска конструируется путем передачи аргументов (нормированное расстояние от верхнего левого угла M) до f. Данный процесс продолжается до центра маски, в точке которого маска симметрично дублируется в четыре элемента. Данный процесс используется из-за того, что левый верхний угол — это постоянный электрический ток (нулевая частота).
5. Сконструируйте остаток матрицы маски, используя funconv.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Если свертка расширяет масштаб изображения, то матрицу выходных данных можно масштабировать до диапазона [0, 255].
funcdeconv
Эта функция обращения свертки принимает изображение частотной области и функцию частотной области и обращает их свертку.
Последний аргумент funcdeconv e является меньшим членом, который добавляется к знаменателям всех выражений в ходе процедуры. В качестве начального пункта введите значение 0 для e. Если появляется сообщение об ошибке "деление на ноль", введите малое значение для e.
1. Вызовите функцию funcdeconv.
Нажать для копирования этого выражения
2. Вычислите DE, чтобы просмотреть результат funcdeconv и сравнить с исходной матрицей.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
matconv
Функция matconv выполняет то же умножение частотной области и преобразуется в funconv, но принимает маску как ввод вместо функции. Маска должна быть того же размера, что и исходное изображение. Поддерживается только верхний левый квадрант маски.
1. Загрузите изображение выборки.
Нажать для копирования этого выражения
2. Подсчитайте количество строк и столбцов в матрице изображения.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
3. Определите размеры маски.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
4. Определите маску C.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
Нажать для копирования этого выражения
* 
Для C можно попробовать следующий фильтр верхних частот:
Нажать для копирования этого выражения
5. Примените matconv к R и C.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
R
C
W
(times.bmp)
(matrix_ii_jj.bmp)
(times_mat.bmp)
matdeconv
Используйте matdeconv, чтобы восстановить исходное изображение. Т. к. обращение свертки потенциально включает деление по элементам с нулевой интенсивностью, то e добавляется к делителю каждого деления для устранения этой проблемы.
Нажать для копирования этого выражения
Нажать для копирования этого выражения
(matdeconv.bmp)
Можно поэкспериментировать с другими функциями фильтра, учитывая, что верхний левый угол маски соответствует низким частотам, а нижний правый угол — высоким. Попробуйте различные изображения.