Instituto de Computação da UNICAMP

Disciplina MC102: Primeiro Semestre de 2010

Laboratório Nº 12

Docente: Mariana Piquet Dias
Monitor: Douglas Oliveira Santos

Prazo de entrega: Em sala - Apresentação - 23/06/2010 - 0.5 na média

No nosso último Lab, trabalharemos com arquivos. Organizem-se em grupos de 5 pessoas. Anotem RA e Nome dos participantes do grupo e entreguem para a professora dia 16/06/2010. Este lab será apresentado em sala e valerá 0.5 ponto na média para cada integrante do grupo, caso os requisitos do programa sejam satisfeitos.

Vocês devem implementar um conversor de imagem colorida para imagem em escala de cinza. Vocês devem utilizar uma foto do grupo de 5 alunos.

Exemplo:

Imagem em RGB

RGB é a abreviatura do sistema de cores aditivas formado por Vermelho (Red), Verde (Green) e Azul (Blue). O propósito principal do sistema RGB é a reprodução de cores em dispositivos eletrônicos como monitores de TV e computador, "datashows", scanners e câmeras digitais, assim como na fotografia tradicional. Um pixel do computador é formado por uma combinação dessas três cores do RGB.

Iremos trabalhar com valores de 0 a 255, ou seja, cada pixel tem uma combinação das cores numa proporção que vai de 0 a 255.
Por exemplo,

o pixel vermelho tem o seguinte valor: Red: 255, Green: 0, Blue:0.

Enquanto que a cor verde tem o seguinte valor: Red: 0, Green: 255, Blue: 0.

Já a cor branca, tem os valores: Red: 255, Green: 255, Blue: 255.

A cor preta tem os valores: Red: 0, Green: 0, Blue: 0.

Portanto, quando falamos de uma imagem colorida cada pixel da imagem é formada por três componentes.

Imagem em escala cinza

Já a imagem na escala cinza conta apenas com um componente. A cor preta ê representada pelo valor 0 e a cor branca pelo valor 255.

Conversão

Utilizando a seguinte equação, uma imagem pode ser convertida da escala colorida para a escala cinza:
valor do pixel cinza = (30 * Vermelho + 59 * Verde + 11 * Azul)/100

Arquivos

Nessa atividade, será necessário então abrir um arquivo de imagem, converter a imagem para escala cinza e gravar um novo arquivo.

Formato do arquivo PPM

Um arquivo ppm é um formato simples de arquivo de imagem. É semelhante a um arquivo de texto com as informações da imagem que podem ser lidas facilmente por uma pessoa.

Na primeira linha, contém um 'número mágico' que indica o tipo da imagem. No nosso caso, será P3

Na linha seguinte vem as dimensões da imagem e a quantidade de cores de cada componente. Iremos trabalhar sempre com 255. O restante do arquivo tem vêm os pixels da imagem, sempre na ordem da componente vermelha primeiro, depois o verde e por último o componente azul do pixel. Isso se repete para todo os pixels da imagem.

Exemplo de uma pequena imagem 'arquivo.ppm':

P3
4 4
255
 0  0  0    0  0  0    0  0  0   15  0 15
 0  0  0    0 15  7    0  0  0    0  0  0
 0  0  0    0  0  0    0 15  7    0  0  0
15  0 15    0  0  0    0  0  0    0  0  0

Formato do arquivo PGM

Um arquivo pgm é semelhante a imagem ppm mas um pixel é formado por apenas 1 valor e com 'número mágico' P2. Exemplo de uma pequena imagem 'arquivo.pgm':

P2
4 4
255
 0  0  0 15
 0  7  0  0
 0  0 15  7
15  0 15  0

Observações:


16/junho/2010