Aula Prática – Computação Gráfica e Processamento de Imagens

R$ 100,00

Disponível

Parcele em até 12x de R$ 10,34 ou 3x sem juros.

À vista R$ 100,00 no boleto, PIX ou cartão.

Pague pelo PIX ou cartão e faça o download agora mesmo.
  
Categoria:
Portfólio Relatório de Aula Prática – Computação Gráfica e Processamento de Imagens

ROTEIRO DE AULA PRÁTICA

NOME DA DISCIPLINA: COMPUTAÇÃO GRÁFICA E PROCESSAMENTO DE IMAGENS

Unidade: 1 – INTRODUÇÃO À COMPUTAÇÃO GRÁFICA

Seção: 3 – REPRESENTAÇÕES DA IMAGEM

OBJETIVOS

Definição dos objetivos da aula prática:

Os objetivos desta aula prática são:

1. Aplicar os conhecimentos da unidade no desenvolvimento de um primeiro programa

de criação e manipulação de imagem vetorial.

2. Aplicar os conhecimentos da unidade no desenvolvimento de um primeiro programa

de criação e manipulação de imagem matricial.

3. Implementar a conversão de imagens vetoriais com retas e círculos para imagem

bitmap.

INFRAESTRUTURA

Instalações – Materiais de consumo – Equipamentos:

LABORATÓRIO DE INFORMÁTICA

EQUIPAMENTOS:

• Desktop Engenharia Positivo Master D3400

~ 1 por aluno ou dupla

SOLUÇÃO DIGITAL

• PILLOW 5.2+ (Biblioteca)

Pillow 5.2+ – é uma biblioteca de processamento de imagens para Python, que permite a abertura,

manipulação e salvamento de imagens em vários formatos.

• PYCAIRO 1.17+ (Biblioteca)

Pycairo 1.17+ – é uma biblioteca de gráficos vetoriais 2D para Python, que permite a criação de

gráficos personalizados de alta qualidade.

• IDLE(PYTHON) (Software)

IDLE(Python): É um ambiente de desenvolvimento integrado (IDE) para a linguagem de

programação Python. Ele é usado principalmente para desenvolvimento de aplicativos em Python

e inclui recursos como realce de sintaxe, depuração, controle de versão e muito mais.

EQUIPAMENTO DE PROTEÇÃO INDIVIDUAL (EPI)

Não se aplica.

PROCEDIMENTO/ATIVIDADE nº 1 (Físico)

ATIVIDADE PROPOSTA:

Criação de imagem vetorial com retas e círculos e transformação em imagem matricial.

PROCEDIMENTOS PARA A REALIZAÇÃO DA ATIVIDADE:

Para a execução desta atividade, você deverá criar e executar um primeiro programa em

Python. O primeiro programa serve apenas para conhecer o ambiente de desenvolvimento,

pois apenas imprime textos na tela.

Em seguida você deverá implementar três passos:

1) criar uma imagem vetorial com dois segmentos de reta e um círculo,

2) desenhar um círculo em formato matricial

3) desenhar segmentos de reta em formato matricial. Esses três passos deverão ser

implementados nos procedimentos passo1(), passo2() e passo3(), respectivamente, junto com

funções auxiliares sugeridas ao longo da atividade.

Crie e execute seu primeiro programa em Python

Para criar seu primeiro programa a partir de um template, faça:

1. Abra o IDLE (Python Shell).

2. Vá em File->Open e abra o arquivo cgpi1tmp.py.

3. Altere o cabeçalho do arquivo, preenchendo devidamente seu nome e número de

matrícula (colocar todos os nomes e números de matrícula se o trabalho for realizado

em grupo).

4. Salve o arquivo com o nome cgpi1.py. Siga o padrão de nomenclatura! O nome do arquivo em

Python é o nome do módulo e não deve conter acentos, espaços ou

caracteres especiais.

5. Execute o programa clicando em Run->Run Module e veja o que é impresso na tela

do Python Shell.

6. No shell, digite ‘import cgpi1.py’ e <ENTER> e veja que o resultado deve ser o mesmo.

A indentação é essencial na linguagem Python, pois é a indentação que define os escopos.

Quando se faz um ‘import cgpi1.py’ o módulo cgpi1 (definido no arquivo cgpi1.py) é carregado

e todo o código sem indentação (a partir da linha print(‘Início da Prática’)) é executado como

um script.

Crie uma imagem vetorial

Para criar uma imagem vetorial você deverá importar módulos no início do arquivo, criar a

função criaImagemVetorial() e preencher o procedimento passo1(). Faça:

1. Importe o cairo, que será utilizado em todos os passos a seguir.

2. Crie a função criaImagemVetorial() que:

a. inicializa a variável v como uma imagem vetorial do tipo SVG

(cairo.SVGSurface) a ser escrita no arquivo cgpi1.svg;

b. adicione a v um segmento de reta preto, partindo da coordenada (0.2,0.3)

até a coordenada (0.8,0.7);

c. adiciona a v um segmento de reta cinza escuro, partindo da coordenada

(0.8,0.3) até a coordenada (0.2,0.7);

d. adicione a v um círculo cinza claro, com centro na coordenada (0.5,0.5) e raio

0.3;

e. salva a imagem cgpi1.svg, chamando pela última vez context.stroke().

f. retorna v.

3. Preencha o procedimento passo1() que:

a. chama a função criaImagemVetorial();

b. salva a imagem criada em formato PNG no arquivo cgpi1.png.

4. Abra o arquivo cgpi1.svg em um editor de texto. Trata-se de um arquivo XML

descritor de imagem.

5. Visualize a imagem cgpi1.svg em um browser. O browser desenha a imagem descrita

no arquivo SVG e exibe.

6. Visualize a imagem cgpi1.png em um visualizador de imagens qualquer. A imagem

PNG é criada com um fundo transparente, mas alguns visualizadores de imagens irão

colocar um fundo branco.

A imagem resultante deverá ser como a da Figura 1.

Figura 1 – Resultado esperado para o Passo 1.

Fonte: o Autor.

Note na Figura 1 que o segmento de reta cinza escuro passa por cima do segmento de reta

preto, portanto no ponto de cruzamento a cor é cinza escuro. Note também que o círculo cinza

claro passa por cima dos dois segmentos de reta e, por isso, os pontos de cruzamento são na

cor cinza claro. Isto se deve à ordem em que os elementos são adicionados à imagem.

Desenhe um círculo em formato matricial

Para desenhar um círculo em formato matricial, você deverá importar módulos no início do

arquivo, criar uma nova função e preencher o procedimento passo2().

Faça:

1. Importe o numpy.

2. No procedimento passo2(), crie a variável f como uma imagem matricial

(NumPyarray) de 201×201 pixels em níveis de cinza, mas com todos os valores em

branco.

3. Implemente a função desenhaCirculo(f,c,r,g), que desenha sobre a imagem em níveis

de cinza f, passada como parâmetro, um círculo de nível de cinza g, com centro na

coordenada c e raio r, onde f é um NumPy array, c é uma coordenada (xc,yc), xc e yc

inteiros, e r é o raio em pixels, um número inteiro. Trata-se da implementação do

algoritmo de desenho de círculo apresentado nesta seção.

4. Novamente no procedimento passo2(), desenhe um círculo cinza claro (g=230) de

centro (100,100) e raio 60 pixels sobre a imagem f, chamando a função

desenhaCirculo(f,(100,100),60,230) .

5. Salve a imagem em formato PNG e abra em um visualizador de imagens.

Você deverá ver uma imagem como a da Figura 2.

Figura 2 – Resultado esperado para o Passo 2.

Fonte: o Autor.

Desenhe retas e converta a imagem vetorial para matricial

Para executar esta atividade, você deverá criar uma nova função e preencher o procedimento

passo3(). Considere v a imagem vetorial criada pela função criaImagemVetorial no Passo 1.

Faça:

1. Implemente a função desenhaReta(f,p,q,g), que desenha sobre a imagem f um

segmento de reta de nível de cinza g que se inicia no ponto p e termina no ponto q,

ambos de coordenadas inteiras. Trata-se da implementação do algoritmo de desenho

de reta apresentado nesta seção.

2. Crie a variável f como uma imagem matricial (NumPyarray)de201x201pixels em

níveis de cinza.

3. Desenhe sobre f o primeiro segmento de reta de v (preto). Para converter as

coordenadas reais de v para as coordenadas inteiras de f, simplesmente multiplique a

coordenada real pela largura (coordenada x) ou altura (coordenada y) de f e converta

o resultado para inteiro. Exemplo: o ponto (0.2,0.7) será (round(0.2*201),

round(0.7*201)), ou seja (40,141).

4. Desenhe sobre f o segundo segmento de reta de v (cinza escuro), usando a mesma

conversão do passo anterior.

5. Desenhe sobre f o círculo de v (cinza claro), usando o mesmo raciocínio dos passos

anteriores. Para converter o raio do círculo para inteiro faça o mesmo que na conversão

de coordenadas.

Salve a imagem f em formato PNG e abra em um visualizador de imagens. Você deverá ver algo

similar à Figura 3, que é uma imagem parecida com a imagem obtida no Passo 1. A diferença

desta imagem para a imagem obtida no Passo 1 é apenas a espessura das linhas.

Figura 3 – Resultado esperado para o Passo 3.

Fonte: o Autor.

CHECKLIST:

1. Aplicar os conhecimentos da unidade no desenvolvimento de um primeiro programa

de criação e manipulação de imagem vetorial.

2. Aplicar os conhecimentos da unidade no desenvolvimento de um primeiro programa

de criação e manipulação de imagem matricial.

3. Implementar a conversão de imagens vetoriais com retas e círculos para imagem

bitmap.

PROCEDIMENTO/ATIVIDADE nº 2 (Digital)

ATIVIDADE PROPOSTA:

Criação de imagem vetorial com retas e círculos e transformação em imagem matricial.

PROCEDIMENTOS PARA A REALIZAÇÃO DA ATIVIDADE:

Para a execução desta atividade, você deverá criar e executar um primeiro programa em

Python. O primeiro programa serve apenas para conhecer o ambiente de desenvolvimento,

pois apenas imprime textos na tela.

Em seguida você deverá implementar três passos: 1) criar uma imagem vetorial com dois

segmentos de reta e um círculo, 2) desenhar um círculo em formato matricial e 3) desenhar

segmentos de reta em formato matricial. Esses três passos deverão ser implementados nos

procedimentos passo1(), passo2() e passo3(), respectivamente, junto com funções auxiliares

sugeridas ao longo da atividade.

Crie e execute seu primeiro programa em Python

Para criar seu primeiro programa a partir de um template, faça:

1. Abra o IDLE (Python Shell).

2. Vá em File->Open e abra o arquivo cgpi1tmp.py.

3. Altere o cabeçalho do arquivo, preenchendo devidamente seu nome e número de

matrícula (colocar todos os nomes e números de matrícula se o trabalho for realizado

em grupo).

4. Salve o arquivo com o nome cgpi1.py. Siga o padrão de nomenclatura! O nome do

arquivo em Python é o nome do módulo e não deve conter acentos, espaços ou

caracteres especiais.

5. Execute o programa clicando em Run->Run Module e veja o que é impresso na tela

do Python Shell.

6. No shell, digite ‘import cgpi1.py’ e <ENTER> e veja que o resultado deve ser o mesmo.

A indentação é essencial na linguagem Python, pois é a indentação que define os escopos.

Quando se faz um ‘import cgpi1.py’ o módulo cgpi1 (definido no arquivo cgpi1.py) é carregado

e todo o código sem indentação (a partir da linha print(‘Início da Prática’)) é executado como

um script.

Crie uma imagem vetorial

Para criar uma imagem vetorial você deverá importar módulos no início do arquivo, criar a

função criaImagemVetorial() e preencher o procedimento passo1(). Faça:

1. Importe o cairo, que será utilizado em todos os passos a seguir.

2. Crie a função criaImagemVetorial() que:

a. inicializa a variável v como uma imagem vetorial do tipo SVG

(cairo.SVGSurface) a ser escrita no arquivo cgpi1.svg;

b. adicione a v um segmento de reta preto, partindo da coordenada (0.2,0.3)

até a coordenada (0.8,0.7);

c. adiciona a v um segmento de reta cinza escuro, partindo da coordenada

(0.8,0.3) até a coordenada (0.2,0.7);

d. adicione a v um círculo cinza claro, com centro na coordenada (0.5,0.5) e raio

0.3;

e. salva a imagem cgpi1.svg, chamando pela última vez context.stroke().

f. retorna v.

3. Preencha o procedimento passo1() que:

a. chama a função criaImagemVetorial();

b. salva a imagem criada em formato PNG no arquivo cgpi1.png.

4. Abra o arquivo cgpi1.svg em um editor de texto. Trata-se de um arquivo XML

descritor de imagem.

5. Visualize a imagem cgpi1.svg em um browser. O browser desenha a imagem descrita

no arquivo SVG e exibe.

6. Visualize a imagem cgpi1.png em um visualizador de imagens qualquer. A imagem

PNG é criada com um fundo transparente, mas alguns visualizadores de imagens irão

colocar um fundo branco.

A imagem resultante deverá ser como a da Figura 1.

Figura 1 – Resultado esperado para o Passo 1.

Fonte: o Autor.

Note na Figura 1 que o segmento de reta cinza escuro passa por cima do segmento de reta

preto, portanto no ponto de cruzamento a cor é cinza escuro. Note também que o círculo cinza

claro passa por cima dos dois segmentos de reta e, por isso, os pontos de cruzamento são na

cor cinza claro. Isto se deve à ordem em que os elementos são adicionados à imagem.

Desenhe um círculo em formato matricial

Elaboramos os portfólios, já deixamos prontos, nas normas da ABNT e conforme os requisitos da universidade. Fácil assim! O MELHOR É QUE VOCÊ COMPRA E JÁ BAIXA NA HORA O SEU ARQUIVO EM WORD! Sabemos que conciliar trabalho, família, vida profissional e estudos é difícil hoje em dia, por isso, estamos aqui para ajudar você. Conte com nossa qualidade, experiência e profissionalismo adquirindo seu portfólio conosco. GARANTIMOS SEU CONCEITO!

Como se realizam os envios?

O seu trabalho é disponibilizado pronto, respondido e nas normas já na mesma hora aqui em nosso site na sua área de downloads e também no seu e-mail.

Em quanto tempo recebo o portfólio?

Os envios são imediatos. Após sua compra, o trabalho já é disponibilizado instantaneamente aqui em nosso site e no seu e-mail.

E se o portfólio que comprei precisar de correção?

Caso haja alguma solicitação de correção/alteração por parte do tutor, basta entrar em contato conosco pelo WhatsApp que providênciaremos sem custo algum.

Qual o formato do arquivo?

Os arquivos são enviados em formato Word e são editáveis.

Caso eu tiver alguma dúvida, terei suporte no pós venda?

Sim, com certeza. Basta clicar no ícone do WhatsApp no cantinho da tela. Será um prazer atendê-lo(a).

Quais os seus canais de contato?

Whatsapp: 53 984751621 – Clicar no canto da tela ou ESCANEIE O QRCODE ABAIXO

projeto de extensão unopar

E-mail:portifoliosp@gmail.com

PORTFOLIO PRONTO UNOPAR ANHANGUERA

Portfólioem Word, respondido, completo e já nas normas

Menu Principal