Especificação do trabalho GA

Transcrição

Especificação do trabalho GA
UNIVERSIDADE DO VALE DO RIO DOS SINOS
Ciências Exatas e Tecnológicas
Curso de Jogos Digitais – Processamento Gráfico - Prof. Leandro Tonietto
Trabalho do GA
Objetivo/Motivação
Fazer um editor de imagens como forma de fixação da matéria relacionada ao conteúdo programático de
processamento de imagens.
A tarefa consiste em criar um software com interface gráfica para manipulação de imagens. As principais
funções a serem desenvolvidas são: carregar e salvar imagens em diversos formatos, colorir pontos da
imagem com tamanho da área escolhido pelo usuário, desenho de formas geométricas e aplicação de filtros
de tratamento de imagens. O aluno fica liberado para implementar opções adicionais no software, que
podem contribuir na forma de pontos-extras, em substituição há algum item que não tenha ficado
completamente funcional.
Atividades a serem programadas
O aluno deve realizar os seguintes passos para o trabalho:
• Como forma de organização de trabalho e para facilitar e antecipar a implementação do trabalho, o aluno
implementar as funcionalidades conforme são estudadas no decorrer do grau A.
• Em geral, como uma boa prática de programação, para cada funcionalidade deve ser implementada no
mínimo uma classe. Todas as funcionalidades recebem parâmetros apropriados e devolvem algum objeto
ou retorno de sucesso, ou um objeto de exceção ou retorno de insucesso. As exceções retornadas são
exibidas ao usuário como mensagens de erro.
• A funcionalidade de interface gráfica, mesmo não sendo a prioritária no trabalho, é muito trabalhosa e
requer muitos cuidados o pontos de atenção. Por exemplo, os alunos devem se preocupar em como
capturar comandos ou como selecionar pontos da imagem, devem se preocupar em como o usuário escolhe
m arquivo para abrir, como a imagem será atualizada na tela após a aplicação de um filtro e etc. Então,
vale a pena gastar um tempo estudando as bibliotecas gráficas que serão utilizadas com linguagem
escolhida para não se depararem com maiores surpresas.
• Os formatos de arquivo que devem ser implementados são o PNM e o BMP. Para os demais formatos de
imagem (JPG, GIF, PNG, ...) que o aluno quiser que editor suporte, pode-se utilizar bibliotecas já
existentes para leitura e gravação. Apenas seria interessante que fossem portadas (entradas e saídas) para
o mesmo esquema de leitura e gravação dos formatos PNM e BMP.
• Descrição das atividades por funcionalidade exigida:
o Carregar: nesta opção, o aluno deve implementar uma classe que recebe como parâmetro uma String e
retorna, em caso de sucesso na leitura, um objeto do tipo imagem (criado pelo próprio aluno ou de
alguma biblioteca da linguagem escolhida); caso contrário, devido a alguma falha de leitura, como
arquivo não existente ou arquivo com formato inválido, o objeto que carrega imagem deve retornar um
objeto de exceção ou sinalização de erro. Uma classe carregador para cada formato de imagem, sendo
que todas são classes derivadas de uma mesma interface.
o Salvar: a exemplo da opção carregar, aluno deve implementar uma classe de salvamento de arquivo
para cada formato de imagem. As classes de salvamento recebem um objeto do tipo imagem e um
caminho com o nome e formato do arquivo a ser gravado. Se o objeto conseguiu realizar o salvamento
sem erros pode dar um retorno de sucesso ou não retornar nada (void); entretanto, em caso de falha,
como um diretório inválido ou tipo de extensão inválida, o software deve retornar uma exceção
apropriada para cada erro.
o Ferramenta pincel: esta ferramenta colore pontos da imagem. O sistema disponibiliza duas cores para
preenchimento, uma de primeiro plano e outra de fundo. Se o usuário clicar na imagem com o botão
esquerdo do mouse, o sistema deve colorir o ponto selecionado com a cor de primeiro plano; caso
clique com o botão direito do mouse, o sistema deve colorir o ponto com cor de fundo. O sistema
permitir que o usuário possa, a qualquer momento, trocar as cores de primeiro plano e de fundo.
Opcionalmente, o sistema pode permitir que o usuário mude a espessura da ferramenta pincel, para
que o usuário possa preencher mais do que um ponto por vez. Outra sugestão é o formato do pincel que
pode ser um ponto, uma cruz, um quadrado, um círculo e etc.
Av. Unisinos, 950
Caixa Postal 275
CEP 93022-000
São Leopoldo
Fone: (51) 3591-1122 Fax: (51) 3590-8172
Rio Grande do Sul
Brasil
http://www.unisinos.br
Email: [email protected] Site: http://www.inf.unisinos.br/~ltonietto
Página 1/3
UNIVERSIDADE DO VALE DO RIO DOS SINOS
Ciências Exatas e Tecnológicas
o Ferramenta desenho de primitivas: desenha uma forma geométrica preenchida ou não na imagem. O
usuário escolhe a forma, clica num ponto da imagem para escolher um canto e clica em outro para
escolher o lado inverso. A menor coordenada é o canto esquerdo e a maior o canto direito. Quando do
segundo clique, a forma geométrica escolhida deve ser desenhada dentro dos limites definidos pelos
cantos clicados. As formas geométricas que o usuário tem a disposição são: retângulo, elipse e
triângulo. Usuário pode optar pela forma como contorno ou como preenchida.
o Aplicação de filtros de imagem: junto com as opções carregar e salvar a opção de aplicação de filtros
são as opções mais importantes do sistema e que mais contam na avaliação do trabalho. A aplicação de
filtros consiste em: dado um filtro escolhido pelo usuário, deve ser exibida uma janela de diálogo para
escolha de parâmetros do filtro. Quando o usuário opta por aplicar um filtro, o sistema deve aplicar
numa imagem temporária, para que, no caso do usuário cancelar o filtro, a imagem original permaneça
inalterada. A imagem temporária pode servir como um preview da aplicação do filtro, inclusive numa
versão de tamanho menor que a original, por questões de performance. Os filtros que devem ser
implementados:
conversão para tons de cinza: a imagem deve ser convertida de RGB para um valor na escala de
cinzas.
Colorização: converte todas as cores da imagem para um tom predominante.
Correção gama: altera contrate e brilho da imagem.
Mais dois filtros a serem propostos pelo grupo.
Avaliação
Os critérios para avaliação do trabalho são a correta implementação das atividades da seção “Atividades a
serem programadas”, além da criatividade e qualidade de código. Distribuição dos pesos:
•
Interface gráfica: funcionalidade e usabilidade (15%)
•
Carregar e salvar em diversos formatos (20%)
•
Ferramentas de edição: pincel e desenho de formas geométricas (20%)
•
Aplicação de filtros de imagem: no mínimo 3 de complexidade média a difícil e no mínimo um que
seja exclusivo entre os trabalhos das turmas. Filtros devem ser “negociados” com o professor (30%)
•
Legibilidade e estruturação do código-fonte, principalmente, quando ao uso da programação OO
(15%)
Considerações finais
Alguns aspectos gerais devem ser considerados na realização do trabalho:
•
O trabalho deverá ser realizado OBRIGATORIAMENTE em DUPLA. Quando se diz que um trabalho deve
ser feito em duplas, os dois integrantes devem, efetivamente, participar da realização, sob pena de
nota diferenciada na avaliação.
•
IMPORTANTE 1: Atividades copiadas da Internet ou dos colegas serão avaliadas com conceito
Reprovado, portanto, menor que 6.
•
Não deixe para a última hora, converse com o professor durante as aulas e receba orientações do
que deve ser feito para atingir o objetivo.
•
Caso algum integrante da dupla desista da atividade acadêmica, o outro integrante deverá dar
continuidade ao projeto sozinho.
•
IMPORTANTE 2: a entrega do trabalho compreende na entrega e apresentação do código-fonte ao
professor pelos dois integrantes do grupo, aonde será evidenciado entendimento do mesmo e a
efetiva participação dos integrantes.
•
Em caso de dúvidas ou problemas contate o professor o quanto antes, para se possa encaminhar
alguma outra solução em tempo hábil.
•
Ferramentas programação:
o Preferencialmente: C++ ou Java.
o Alternativamente: Python, C# e outras.
Av. Unisinos, 950
Caixa Postal 275
CEP 93022-000
São Leopoldo
Fone: (51) 3591-1122 Fax: (51) 3590-8172
Rio Grande do Sul
Brasil
http://www.unisinos.br
Email: [email protected] Site: http://www.inf.unisinos.br/~ltonietto
Página 2/3
UNIVERSIDADE DO VALE DO RIO DOS SINOS
Ciências Exatas e Tecnológicas
o
Em ambos os casos, o aluno deve implementar o que foi solicitado, não deve fazer uso de
bibliotecas. Por exemplo, o aluno deve implementar o algoritmo para carregar o arquivo
PNM e não utilizar biblioteca pronta. De qualquer maneira, na dúvida questione o professor
para não ser surpreendido na avaliação.
Data de Entrega: 17/04/2009
Data da especificação: 26/02/2009
Av. Unisinos, 950
Caixa Postal 275
CEP 93022-000
São Leopoldo
Fone: (51) 3591-1122 Fax: (51) 3590-8172
Rio Grande do Sul
Brasil
http://www.unisinos.br
Email: [email protected] Site: http://www.inf.unisinos.br/~ltonietto
Página 3/3

Documentos relacionados

Exercícios sobre comando WHILE-DO / FOR – Java

Exercícios sobre comando WHILE-DO / FOR – Java  para 1.500,00 <= salarioAtual < 1.750,00: aumento igual a 12%  para 1.750,00 <= salarioAtual < 2.000,00: aumento igual a 10%  para 2.000,00 <= salarioAtual < 3.000,00: aumento igual a 7%  para...

Leia mais