Aula Prática – Computação Gráfica e Processamento de Imagens
R$ 100,00
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.
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
Como funciona?
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?
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