Вкратце, частота относится к скорости изменения. Точнее говоря, частота является обратной величиной периода изменения, то есть количества времени, которое требуется для перехода от одной яркости (или любой другой) к другой яркости и обратно. Чем быстрее произойдет изменение (например, от светлого к темному), тем выше будет визуальная «частота», необходимая для представления этой части изображения.
Другими словами, вы можете думать о частоте в изображении как о скорости изменения. Части изображения, которые быстро изменяются от одного цвета к другому (например, острые края), содержат высокие частоты, а части, которые постепенно изменяются (например, большие поверхности со сплошными цветами), содержат только низкие частоты.
Когда мы говорим о DCT и FFT и других подобных преобразованиях, мы обычно делаем их на части изображения (например, для сжатия JPEG, обнаружения краев и т. Д.). Поэтому имеет смысл говорить о преобразованиях в контексте блока преобразования заданного размера.
Представьте, если хотите, блок данных изображения размером 32 × 32 пикселя. (Это число является произвольным.) Предположим, что изображение представляет собой простой градиент, который является белым с левой стороны, черным по центру и белым с правой стороны. Мы бы сказали, что этот сигнал имеет период, равный примерно одной длине волны на 32 пикселя ширины, поскольку он проходит полный цикл от белого до черного и снова белого каждые 32 пикселя.
Мы могли бы произвольно назвать эту частоту "1" - 1 цикл на 32 пикселя, то есть. Я смутно вспоминаю, что это обычно называется θ в учебниках по преобразованию, или, может быть, θ / 2, но я могу помнить неправильно. В любом случае, мы пока назовем это 1, потому что это действительно произвольно в абсолютном смысле; важно соотношение между частотами в относительном смысле. : -)
Предположим, у вас есть второе изображение, которое имеет белый цвет на одном краю, затем исчезает вдвое быстрее, поэтому оно переходит от белого к черному, к белому, черному и снова к белому на другом краю. Затем мы бы назвали эту частоту «2», потому что она изменяется в два раза чаще по ширине этого 32-пиксельного блока.
Если бы мы хотели воспроизвести эти простые изображения, мы могли бы буквально сказать, что каждая строка состоит из сигнала с частотой 1 или 2, и вы бы знали, как выглядят изображения. Если изображения стали черными до 50% серого, вы могли бы сделать то же самое, но вы должны были бы сказать, что они имели частоту 1 или 2 при интенсивности 50%.
Реальные изображения, конечно, не просто градиент. Изображение меняется часто, а не периодически при сканировании слева направо. Тем не менее, в достаточно маленьком блоке (например, 8 пикселей, 16 пикселей) вы можете аппроксимировать этот ряд пикселей как сумму последовательности сигналов, начиная со среднего значения пикселей в строке, за которым следует величина " Частота 0,5 "сигнала (черный на одной стороне, затемнение к белому) для смешивания (или с отрицательным значением, количества этого сигнала для вычитания), за которым следуют значения частоты 1, частоты 2, частоты 4 и т. д. .
Теперь изображение уникально тем, что оно имеет частоту в обоих направлениях; он может становиться все светлее и темнее при движении как по горизонтали, так и по вертикали. По этой причине мы используем 2D-преобразования DCT или FFT вместо 1D. Но принцип все еще в основном тот же. Вы можете точно представить изображение 8x8 с сеткой 8x8 из блоков одинакового размера.
Изображения также являются более сложными из-за цветов, но мы пока проигнорируем это и предположим, что мы смотрим только на одно изображение в оттенках серого, которое вы можете получить, глядя на красный канал фотографии изолированно.
Что касается того, как читать результаты преобразования, это зависит от того, смотрите ли вы на 1D преобразование или 2D преобразование. Для одномерного преобразования у вас есть ряд бинов. Первый - это среднее значение всех входных значений. Второе - это количество добавляемого сигнала частоты 1, третье - это количество добавляемого сигнала частоты 2 и т. Д.
Для 2D-преобразования у вас есть сетка значений n x n . Верхний левый угол, как правило, является средним, и когда вы идете в горизонтальном направлении, каждое ведро содержит количество сигнала, который нужно смешать с горизонтальной частотой 1, 2, 4 и т. Д., А когда вы идете в вертикальном направлении, он количество сигнала для смешивания с частотой вертикальной развертки 1, 2, 4 и т. д.
Это, конечно, полная история, если вы говорите о DCT; напротив, каждая ячейка для БПФ содержит действительные и мнимые части. БПФ по-прежнему основывается на той же базовой идее (своего рода), за исключением того, что способ отображения частот на бункеры отличается, а математика более привлекательная. : -)
Конечно, наиболее распространенная причина для генерации такого рода преобразований состоит в том, чтобы затем сделать еще один шаг и выбросить некоторые данные. Например, DCT используется в сжатии JPEG. При чтении значений в зигзагообразной схеме, начиная с верхнего левого угла (среднее значение) и перемещаясь в нижний правый угол, в первую очередь записываются наиболее важные данные (средняя и низкочастотная информация), за которыми следуют постепенно увеличивающиеся данные частоты. В какой-то момент вы в основном говорите «это достаточно хорошо» и выбрасываете данные с самой высокой частотой. Это существенно сглаживает изображение, отбрасывая его мелкие детали, но все равно дает примерно правильное изображение.
И IIRC, FFT также иногда используются для обнаружения краев, где вы отбрасываете все, кроме высокочастотных компонентов, в качестве средства обнаружения областей с высокой контрастностью на острых кромках.
У National Instruments есть хорошая статья , которая объясняет это с помощью картинок. : -)