Manipulação de Imagens em OpenGL

Slides:



Advertisements
Apresentações semelhantes
Funções para serem usadas no exercício de Lab
Advertisements

Um programa em C Bibliotecas Variáveis globais
Programação em Java Prof. Maurício Braga
WINDOWS Sistemas Operacionais PLATAFORMA TECNOLÓGICOS
Linguagem C Marco Reis.
Manipulação de Strings Marco Reis. Novo arquivo Adicione ManipulacaoDeStrings.c ao projeto. Cada projeto pode ter apenas um método main. Como outros programas.
Recursividade Prof. Alex F. V. Machado
Algoritmos e Estrutura de Dados I
Polimorfismo e Acoplamento Dinâmico
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
LINGUAGEM ESTRUTURADA TURBO C
Funções para serem usadas no exercício de Lab nos dias (11/03/2010 e 17/03/10) Visualização 3D Incluir no FrameWork Básico (na página da disciplina), as.
Callback de Teclado // registro void glutKeyboardFuc(Teclado);
Iluminação Para programar um sistema de iluminação, dois passos principais devem ser considerados: c) Que tipo e posição de Iluminação se deseja b) Que.
Universidade Federal do Espírito Santo
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Vetores, Matrizes e Funções
Vetores, Matrizes e Funções
Estruturas de Decisão Permitir testes para decidir acções alternativas: if if - else switch (?:) Operador Condicional MF.
Revisão da Linguagem C.
Linguagem de Programação
Classes e objetos P. O. O. Prof. Grace.
O Portal do Estudante de Computação
Aula prática 13 Orientação a Objetos – C++ Parte 1
PROGRAMAÇÃO ESTRUTURADA II
PROGRAMAÇÃO ESTRUTURADA II
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
Linguagem de Programação JAVA
Prof. Ricardo Santos PONTEIROS
Programação de Computadores
Técnicas de Desenvolvimento de Programas
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
PROGRAMAÇÃO ou LINGUAGEM C?
Capítulo V – Comandos de Entrada e Saída 5.1 – Equipamentos de entrada e saída 5.2 – Saída no vídeo-texto 5.3 – Entrada pelo teclado 5.4 – Entrada e saída.
Nome : Héber Matheus L. Lunardelli Curso : A
Introdução à Linguagem C
Declarando e Chamando Funções
Algumas notas sobre a linguagem de programação C
Áudio na Apresentação.
STRINGS Dilvan Moreira (baseado no livro Big Java e Z. Liang)
Aula prática 3 Aprofundando em Funções Parâmetros de uma função Uso do return Execução Variáveis Global, local e estática Monitoria de Introdução à.
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo I Comandos Simples e Repetições.
Prof. Alessandro Gonçalves
Comando de Seleção switch
Linguagem C - Funções Automação Industrial Informática Básica
Viewport.
Computação Gráfica – Animação
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
O BrOffice.org Impress é um software livre que permite a manipulação total sobre apresentações gráficas. O Impress permite a criação, apresentação e colaboração.
Introdução à Programação
Curso Técnico em Informática Professor Igor Vale.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
NA AULA DE HOJE VEREMOS A TRANSIÇÃO ENTRE ACTIVITYS. CRIE UM PROJETO COM O NOME TRANSICAO, A SEGUIR MONTE SUA ACTIVITY COMO A ABAIXO :
Programação Computacional Aula 9: Meu primeiro programa em C
Profº Antonio Carlos Marcelino de Paula
Animação 2D. // Variáveis que guardam a translação que será aplicada // sobre a casinha GLfloat Tx; GLfloat Ty; // Variáveis que guardam os valores mínimos.
Programação Orientada a Objetos Prof. Rafael Silva.
Linguagem de Programação
1º e 2º ano XII Olimpíadas das Cores Emílio Miotti.
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções”
PROGRAMAÇÃO ORIENTADA A OBJETOS Carlos Marques
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
FUNÇÕES Dilvan Moreira (baseado em material de Z. Liang)
Fundamentos de Programação 1 Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Arquivos Seqüências ou de Texto ”. 1.
Transcrição da apresentação:

Manipulação de Imagens em OpenGL

Para realizar a carga de uma imagem, deve-se usar junto com o programa fonte um arquivo chamado ImageClass que encapsula as funções de OpenGL para acesso a imagens, para usar esta classe você deve criar uma instâcia da classe e carregar uma imagem da seguinte forma: Cria um objeto imagem     Image = new ImageClass();     r = Image->Load("C:\\local do arquivo\\imagem.bmp     if (!r)     {         printf("Imagem não encontrada. Verifique o nome do Arquivo.\n");         printf("Pressione ENTRE para encerrar.");         getchar();         exit(1);     }     else printf ("Imagem carregada!\n");

Compile o programa-fonte ImageTeste Compile o programa-fonte ImageTeste.cpp e procure entender como funcionam as rotinas init e ConvertBlackAndWhite. Pressionando a tecla 2 na execução do programa você consegue observar o resultado da aplicação da rotina ConvertBlackAndWhite.

Você pode ainda, criar uma imagem vazia da seguinte forma: Instacia o objeto que irá exibir uma nova imagem; Caso precise alterar o tamanho da nova imagem, mude os parâmetros da construtura, na chamada abaixo. NovaImagem = new ImageClass(Image->SizeX(), Image->SizeY()); No exemplo a nova imagem  é criada usando o tamanho Da imagem recém carregada de disco: Posiciona a imagem nova ao lado da antiga: NovaImagem->SetPos(Image->SizeX()+10, 0);

Para acessar os pontos da imagem você pode usar os métodos ReadPixel e DrawPixel. Para obter a cor RGB de um pixel x,y na imagem use : Image->ReadPixel(GLint x, GLint y, unsigned char &r, unsigned char &g, unsigned char &b) Para alterar  a cor RGB de um pixel x,y na imagem use : Image->DrawPixel(GLint x, GLint y, unsigned char r, unsigned char g, unsigned char b) Para obter a Internsidade(Luminosidade) de um ponto use: i = Image->GetPointIntensity(x,y);

Exercício 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.