Exemplo n.º 1
0
  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;
  }
Exemplo n.º 2
0
  /**
   * 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;
  }
Exemplo n.º 3
0
  /**
   * 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;
  }