public boolean ifft(String imagePath, String outputFileName) throws FourierException { setFile(new File(imagePath)); // Define objeto BufferedImage para encapsular a imagem BufferedImage src, output = null; FourierImagem fft; // Armazena arquivo imagem numa BufferedImage try { src = ImageIO.read(inputFile); } catch (IOException e1) { throw new FourierException(FourierException.ARQUIVO_N_EXISTE); } // Espectro de fourier como saída fft = new FourierImagem(src); fft.transform(); // direta fft.transform(); // inversa output = fft.toImage(fft.getGrayImage()); // Persistência em arquivo com formato bmp File outputFile = new File(outputFileName); try { ImageIO.write(output, "JPG", outputFile); } catch (IOException e) { throw new FourierException(FourierException.ERRO_SALVAR_SAIDA); } return true; }
/** * Realiza a operação de filtragem com o filtro rejeita faixa, retornando a imagem resultante no * domínio do espaço, 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 rejeitaFaixaEsp(BufferedImage src, double raioInterno, double raioExterno) throws FourierException { BufferedImage resultadoEspaco = null; // Filtragem no domínio da freqüência FourierImagem fr = new FourierImagem(src); fr.transform(); Filtragem.rejeitaFaixa(fr, raioInterno, raioExterno); // Voltar para o domínio do espaço fr.transform(); resultadoEspaco = fr.toImage(fr.getGrayImage()); return resultadoEspaco; }
/** * Realiza a operação de filtragem com o filtro passa alta, retornando a imagem resultante no * domínio do espaço, onde ficam mais evidentes os efeitos filtragem * * @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 passaAltaEsp(BufferedImage src, double raio) throws FourierException { BufferedImage resultadoEspaco; // Filtragem no domínio da freqüência FourierImagem fr = new FourierImagem(src); fr.transform(); Filtragem.passaAlta(fr, raio); // Voltar para o domínio do espaço fr.transform(); resultadoEspaco = fr.toImage(fr.getGrayImage()); return resultadoEspaco; }