Aula Prática: Manipulação de Imagens
Disciplina: Computação Gráfica
Professora: Isabel Harb Manssour
 

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 Projeto.zip e deixar todos os arquivos na pasta nomeada Projeto 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 ProjetoFinal.dev. Isto deverá abrir o ambiente do DEV CPP, no qual você poderá compilar e testar o programa. Selecione a opção Compilar & Executar (ou tecle F9). Isto deverá compilar e executar seu programa. Tecle 2 para testá-lo e ESC para sair. Caso ocorra algum problema, siga as orientações disponíveis na aula prática de OpenGL.

Observe atentamente o código para entender o seu funcionamento. Depois realize as tarefas especificadas pelo professor Marcio S. Pinho, que é o autor do exercício, ao longo do código. O único arquivo que deve ser alterado é o ImageTest.cpp. Para facilitar, estas tarefas foram 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 18 de agosto de 2006.