Как инвертировать частотный спектр изображения?

Что будет, если перевернуть частотный спектр у сигнала – высокие частоты станут низкими, а низкие - высокими?

Не очень разбираюсь в математике обработки сигналов. В общих чертах представляю, что такое преобразование Фурье, и что такое частотное разложение изображения.

Для аудио сигнала, как пишут, это делается тривиальным умножением на -1 сэмплов через один.

Вопрос: как это сделать для двухмерного изображения?

Интересно, как будет выглядеть картинка, в которой перевернули частотный спектр? И как это реализовать – намного ли сложнее, чем инверсия отсчётов через один?

Общая идея по аналогии с частотым разложением изображения для профессиональной ретуши:

картинка -> FFT -> (реверс спектра) -> IFFT -> редактирование 
    -> FFT -> (реверс спектра) -> IFFT -> Profit!
  • Вопрос задан
  • 1018 просмотров
Решения вопроса 1
@AelDeyr
Берете картинку, проще всего какой-нибудь формат без сжатия, вроде BMP.
Разворачиваете картинку в одномерный массив пикселей. Для BMP будет Array of Point(R,G,B,A). C этим массивом работаете по описанной вами схеме.
Если тема интересна, гуглить: "алгоритмы сжатия с потерями" "использование вейвлетов для сжатия изображений" "разбор алгоритма Jpeg-кодирования"
Если сразу готовый алгоритм, вот на хабре статья (не моя) была по вейвлетам Хаара когда-то: habrahabr.ru/post/168517 (это теория, в конце данной статьи ссылка на практику с готовыми исходниками)
Заменить в исходниках ядро преобразования с Хаара на Фурье труда не составит.

p.s. Картинки получаются очень интересными. В свое время, когда для себя написал такую программу, потом часа четыре игрался с базой изображений. Особенно интересно смотреть в реальном времени, как постепенно высокие частоты вносят объем и цвет в базовое изображение. Или как разные ядра по-разному декомпозируют исходный файл.
p.p.s. Очень наглядная визуализация. Такие наблюдения потом помогут быстро разбираться чему же все-таки научилась ваша нейронная сеть (за что отвечают отдельные веса и т.п.)
p.p.p.s. Если совсем лень, можете взять Wolfram Mathematica, у них все эти алгоритмы реализованны.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы