/** * Transforma a imagem de entrada no domínio do espaço em uma imagem no domínio da freqüência com * a realização da transformada rápida de Fourier. * * @param src a imagem no domínio do espaço passada como parâmetro * @return a imagem no domínio da freqüência * @throws FourierException caso existam problemas no processo de mudança de domínio */ public BufferedImage computeSpectrum(BufferedImage src) throws FourierException { FourierImagem fft = new FourierImagem(src); fft.transform(); return fft.getEspectro(); }
/** * Realiza a operação de filtragem com o filtro passa baixa gaussiano, retornando a imagem * resultante no domínio da freqüência * * @param src Image de entrada * @param raio o raio do filtro passa alta * @return a imagem filtrada * @throws FourierException caso não seja possível realizar a operação ou existam erros no * procedimento */ public static BufferedImage gaussianoPassaBaixaFreq(BufferedImage src, double raio) throws FourierException { BufferedImage resultadoFreq = null; // Filtragem no domínio da freqüência FourierImagem fr = new FourierImagem(src); fr.transform(); Filtragem.filtroGaussianoPassaBaixa(fr, raio); resultadoFreq = fr.getEspectro(); return resultadoFreq; }
/** * Realiza a operação de filtragem com o filtro passa alta butterworth, retornando a imagem * resultante no domínio da freqüência * * @param src Image de entrada * @param raio o raio do filtro passa alta * @return a imagem filtrada * @throws FourierException caso não seja possível realizar a operação ou existam erros no * procedimento */ public static BufferedImage butterworthPassaAltaFreq(BufferedImage src, double raio, int n) throws FourierException { BufferedImage resultadoFreq = null; // Filtragem no domínio da freqüência FourierImagem fr = new FourierImagem(src); fr.transform(); Filtragem.filtroButterworthPassaAlta(fr, n, raio); resultadoFreq = fr.getEspectro(); return resultadoFreq; }
/** * Realiza a operação de filtragem com o filtro rejeita faixa, retornando a imagem resultante no * domínio da freqüência, onde ficam mais evidentes os efeitos filtragem * * @param src Image de entrada * @param raioInterno o raio interno do filtro * @param raioExterno o raio externo do filtro * @return a imagem filtrada * @throws FourierException caso não seja possível realizar a operação ou existam erros no * procedimento */ public BufferedImage rejeitaFaixaFreq(BufferedImage src, double raioInterno, double raioExterno) throws FourierException { if ((raioInterno < 0) || (raioInterno > 1) || (raioExterno < 0) || (raioExterno > 1)) { throw new FourierException(FourierException.RAIO_FAIXA); } // Filtragem no domínio da freqüência FourierImagem fr = new FourierImagem(src); fr.transform(); Filtragem.rejeitaFaixa(fr, raioInterno, raioExterno); return fr.getEspectro(); }