Aula Prática (Manipulação de Imagens)
Disciplina: Computação Gráfica
Professores: Isabel Harb Manssour / Marcio Serolli Pinho


 

O objetivo desta aula é implementar os algoritmos de manipulação de imagens para testar na prática os conceitos estudados em aula. Serão utilizadas as bibliotecas OpenGL, GLU, GLAUX e GLUT, no ambiente Windows.

O primeiro passo consiste em instalar o Dev-C++ (caso ele ainda não esteja instalado) e as bibliotecas necessárias para trabalhar. Em princípio, é necessário apenas fazer o download do arquivo ImagensDEVCPP.zip e deixar todos os arquivos numa pasta nomeada CG no drive h:.

Para desenvolver as aplicações OpenGL no Dev-C++ é necessário criar um projeto, que é um arquivo com sufixo .dev, geralmente identificado pelo mesmo ícone do Dev-C++. Este arquivo já foi criado para a aula de hoje.

Abra o diretório onde você descompactou o arquivo recém copiado e dê um clique-duplo no arquivo Projeto.dev. Isto deverá abrir o ambiente do DEV CPP, no qual você poderá compilar e testar o programa.

Selecione a opção Rebuild All, no menu Execute o tecle CTRL-F11. Isto deverá compilar e executar seu programa. Tecle 2 para testá-lo e ESC para sair.

Observe atentamente o código para entender o seu funcionamento. O único arquivo que deve ser alterado é o ImageTest.cpp. Neste arquivo, realize as listadas a seguir:

  • Tarefa 1: na função void ConvertBlackAndWhite(), mude o valor do LIMIAR para números pequenos como 5 ou 10;
  • Tarefa 2: na função void ConvertBlackAndWhite(), mude o valor do LIMIAR para um número que represente a média entre os valores de intensidade máximo e mínimo encontrados;
  • Tarefa 3: na função void ConvertToGrayScale(), gere uma imagem em tons de cinza usando os métodos ReadPixel e DrawPixel da classe ImageClass; depois de implementado, acrescente o código abaixo no comando switch da função keyboard, que é uma função callback chamada sempre que o usuário pressiona uma tecla do teclado;
                ...
                case '3': // chama função ConvertToGrayScale quando a tecla '3' for pressionada
                          NovaImagem->Clear();
                          ConvertToGrayScale();
                          glutPostRedisplay();    // obrigratório para redesenhar a tela
                          break;
               ...
  • Tarefa 4: na função ConvertToHalftone() gere uma imagem em duas cores usando o método de Halftone com uma matriz 2x2, usando o método GetPointIntensity da classe ImageClass; será necessário ampliar o tamanho da NovaImagem (olhe a rotina init abaixo e para alterar o tamanho da janela olhe a função main()).

Observações:
- para todas as tarefas experimente executar o programa usando as imagens b.bmp e eagle.bmp;
- analise as rotinas arrow_keys e keyboard, verifique as teclas que podem ser usadas no programa e associe novas teclas para cada tarefa que for implementada.

 ../../Imagens/emban15.png (1469 bytes)

../../Imagens/E-MAIL.JPG (3237 bytes)Comentários, dúvidas, sugestões, envie um mail para [email protected]

../../Imagens/emban15.png (1469 bytes)

 

[Homepage CG]  [Homepage CG-SI]

Última alteração em 20 de março de 2005.