Aula 10 Discrete Wavelets Transform

Exercícios

isccsym

Não é fácil projetar um conjunto de testes para garantir que o seu programa esteja correta. No caso em que o resultado é Falso, i.e., não simétrico, basta um pixel não ser simétrico para o resultado ser Falso. Com isso, o conjunto de teste com uma imagem enorme com muitos pixels não simétricos não é bom teste. Por exemplo, neste caso, faltou um teste onde tudo seja simétrico, com exceção da origem (F[0,0]).

Solução apresentada pelo Marcelo, onde é comparado com a imagem refletida com translação periódica de 1 deslocamento é bem conceitual. A solução do Deângelo parece ser a mais rápida: não foi feita nenhuma cópia e comparou apenas com metade dos pixels.

Existe ainda pequeno problema a ser encontrado na questão de utilizar apenas metade dos pixels para serem comparados.

minify

A redução da imagem deve ser feita com uma filtragem inicial de período de corte 2.r onde r é o fator de redução da imagem. A seguir, é feita a reamostragem (decimação).

Para se fazer a redução no domínio da frequência, bastaria recortar o espectro da imagem original e fazer a transforma inversa de Fourier.

resize

Verificou-se que a melhor função de ampliação/redução é a scipy.misc.imresize, tanto na qualidade como na rapidez.


In [1]:
import numpy as np
import sys,os
import matplotlib.image as mpimg
ia898path = os.path.abspath('../../')
if ia898path not in sys.path:
    sys.path.append(ia898path)
import ia898.src as ia

Exercícios para a próxima aula

  1. Fazer uma função que amplie/reduza a imagem utilizando interpolação no domínio da frequência, conforme discutido em aula. Comparar os resultados com o scipy.misc.imresize, tanto de qualidade do espectro como de tempo de execução. Os alunos com RA ímpar devem fazer as ampliações e os com RA par devem fazer as reduções. Nome da função: imresize

  2. Modificar a função pconv para executar no domínio da frequência, caso o número de elementos não zeros da menor imagem, é maior que um certo valor, digamos 15. Nome da função: pconvfft

Transforma Discreta de Wavelets

Iremos utilizar um notebook que foi um resultado de projeto de anos anteriores.


In [ ]:
/home/lotufo/ia898/dev/wavelets.ipynb