Resumidamente, a frequência refere-se à taxa de mudança. Mais precisamente, a frequência é o inverso do período da mudança - ou seja, a quantidade de tempo que leva para alternar de um brilho (ou qualquer outro) para um brilho diferente e voltar novamente. Quanto mais rápido a mudança (por exemplo, do claro para o escuro), maior a "frequência" visual necessária para representar essa parte da imagem.
Em outras palavras, você pode pensar na frequência em uma imagem como a taxa de mudança. Partes da imagem que mudam rapidamente de uma cor para outra (por exemplo, bordas nítidas) contêm altas frequências e partes que mudam gradualmente (por exemplo, grandes superfícies com cores sólidas) contêm apenas baixas frequências.
Quando falamos sobre DCT e FFT e outras transformações similares, geralmente as fazemos em uma parte da imagem (por exemplo, para compactação JPEG, detecção de borda e assim por diante). Faz mais sentido falar sobre as transformações, então, no contexto de um bloco de transformação de um determinado tamanho.
Imagine, se desejar, um bloco de 32 pixels x 32 pixels de dados de imagem. (Esse número é arbitrário.) Suponha que a imagem seja um gradiente simples, branco no lado esquerdo, preto no meio e branco no lado direito. Diríamos que esse sinal tem um período de aproximadamente um comprimento de onda por 32 pixels de largura, porque passa por um ciclo completo de branco para preto e branco novamente a cada 32 pixels.
Arbitrariamente, podemos chamar essa frequência de 1 a 1 ciclo por 32 pixels. Lembro-me vagamente de que isso é comumente chamado θ nos livros de transformação, ou talvez θ / 2, mas eu poderia estar lembrando errado. De qualquer maneira, vamos chamá-lo de 1 por enquanto, porque isso é verdadeiramente arbitrário em um sentido absoluto; o que importa é a relação entre frequências em um sentido relativo. :-)
Suponha que você tenha uma segunda imagem que seja branca em uma borda e desbotada duas vezes mais rapidamente, de modo que ela passe de branco para preto, para branco, para preto e para branco novamente para a outra borda. Então, chamaríamos essa frequência de "2" porque ela muda duas vezes mais que a largura desse bloco de 32 pixels.
Se quiséssemos reproduzir essas imagens simples, poderíamos literalmente dizer que cada linha consiste em um sinal com uma frequência de 1 ou 2, e você saberia como são as imagens. Se as imagens passassem de preto para 50% de cinza, você poderia fazer o mesmo, mas diria que elas tinham uma frequência de 1 ou 2 a uma intensidade de 50%.
Imagens do mundo real, é claro, não são apenas um simples gradiente. A imagem muda frequentemente e não periodicamente conforme você digitaliza da esquerda para a direita. No entanto, dentro de um bloco pequeno o suficiente (por exemplo, 8 pixels, 16 pixels), você pode aproximar essa linha de pixels como a soma de uma série de sinais, começando com a média dos valores de pixels na linha, seguidos pela quantidade de " sinal de frequência 0,5 "(preto de um lado, desbotando para branco) para combinar (ou com uma quantidade negativa, a quantidade desse sinal a subtrair), seguido pela quantidade de frequência 1, frequência 2, frequência 4 e assim por diante .
Agora, uma imagem é única, pois tem frequência nas duas direções; pode ficar mais claro e mais escuro ao se mover na horizontal e na vertical. Por esse motivo, usamos transformações 2D DCT ou FFT em vez de 1D. Mas o princípio ainda é basicamente o mesmo. Você pode representar com precisão uma imagem 8x8 com uma grade 8x8 de buckets de tamanhos semelhantes.
As imagens também são mais complexas por causa das cores, mas vamos ignorar isso por enquanto, e assumiremos que estamos vendo apenas uma imagem em escala de cinza, como você pode ver ao ver o canal vermelho de uma fotografia isoladamente.
Quanto a como ler os resultados de uma transformação, isso depende se você está olhando para uma transformação 1D ou 2D. Para uma transformação 1D, você tem uma série de posições. O primeiro é a média de todos os valores de entrada. O segundo é a quantidade do sinal de frequência 1 a ser adicionado, o terceiro é a quantidade do sinal de frequência 2 a ser adicionado, etc.
Para uma transformação 2D, você tem uma grade de valores n x n . O canto superior esquerdo é tipicamente essa média e, à medida que você avança na direção horizontal, cada balde contém a quantidade de sinal a ser misturado com uma frequência horizontal de 1, 2, 4 etc. e, na direção vertical, ele é a quantidade de sinal para misturar com uma frequência vertical de 1, 2, 4 etc.
Essa é, obviamente, a história completa, se você estiver falando de um DCT; Por outro lado, cada compartimento para uma FFT contém peças reais e imaginárias. A FFT ainda é baseada na mesma idéia básica (mais ou menos), exceto que a maneira como as frequências são mapeadas nas caixas é diferente e a matemática é mais complicada. :-)
Obviamente, o motivo mais comum para gerar esse tipo de transformação é dar um passo adiante e jogar alguns dados fora. Por exemplo, o DCT é usado na compactação JPEG. Ao ler os valores em um padrão em zigue-zague, começando com o canto superior esquerdo (a média) e movendo-se para o canto inferior direito, os dados mais importantes (as informações de média e baixa frequência) são registrados primeiro, seguidos pelos dados de frequência progressivamente mais altos. Em algum momento, você basicamente diz "isso é bom o suficiente" e joga fora os dados de maior frequência. Isso suaviza essencialmente a imagem jogando fora os detalhes finos, mas ainda fornece aproximadamente a imagem correta.
E IIRC, FFTs também são algumas vezes usados para detecção de bordas, onde você joga fora todos, exceto os componentes de alta frequência, como um meio de detectar as áreas de alto contraste em bordas afiadas.
A National Instruments tem um belo artigo que explica isso com fotos. :-)