Lista de Alunos | Ex.4 | Ex.8

Exercício 5 - Translação e Rotação

  1. Função iaffine
  • Otimizar a função iaffine (retirar meshgrid)
  • Incluir como parâmetro de entrada um domínio diferentes para a imagem de saída
  • Implementar iaffine 3D

Comentários sobre este exercício

Nossa matriz não tem como representar coordenadas negativas. Isto implica que o domínio da imagem resultante sempre ficará limitado a domínios com coordenadas positivas, o que é um limitante nas transformações geométricas. Um exemplo simples é a rotação de 90 graus, onde o domínio da imagem fica praticamente todo negativo. Uma forma do usuário lidar com isto, é incluir implicitamente uma translação na matriz T de modo que o domínio da imagem resultado fique no semi-espaço positivo. Este caso fica mais complicado de entender no caso 3D, pois a intuição fica mais difícil de ser feita.

Uma sugestão conciliatória é definição opcional do shape da imagem resultante, sabendo que a origem continua sempre no canto superior esquerdo da primeira fatia. Cabe ao usuário da função iaffine3 calcular as translações e o shape resultante para obter o resultado desejado.

Exercício 6 - Continuação

Exercício para próxima aula (terça, 05/04):

Criar uma affine3d que seja bem simples: shape resultante opcional, default é o shape da imagem de imagem de entrada. A ordem dos eixos ser consistente com o Python, usar interpolação do vizinho mais próximo, mapeamento inverso. Manter o valor dos pixels sem mapeamento com o pixel mais próximo da imagem. Neste caso, caso precisar preencher com zeros, colocar um frame ao redor da imagem.

Criar outras funções que utilizem a affine3d que façam as rotações nos eixos x, y ou z de +-90 graus, porém deixando a imagem resultante totalmente visível.

iarot3d(f,eixo)

Exercício 7 - Continuação

Exercício para próxima aula (terça, 12/04):

Implementar a função iamosaic, porém apenas a transformação 3D em 2D, com parâmetro de n. de fatias na horizontal. Utilizar as equações da transformação geométrica inversa necessária. Não é possível utilizar a função iaffine mas ela pode dar a inspiração para o iamosaic. Fazer exemplos numéricos de teste e com imagens e não esquecer de colocar a equação.