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
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