Функции > Обработка изображений > Область преобразования > Пример. Фильтрация в области преобразования Фурье
Пример. Фильтрация в области преобразования Фурье
Используйте функции 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)
Можно поэкспериментировать с другими функциями фильтра, учитывая, что верхний левый угол маски соответствует низким частотам, а нижний правый угол — высоким. Попробуйте различные изображения.
Было ли это полезно?