Buscar

Tema 05 Noções de Programação - Exemplos Com Manipulação de Imagens Digitais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Tema 05: Noções de Programação - Exemplos Com Manipulação de Imagens Digitais 1
Tema 05: Noções de Programação - 
Exemplos Com Manipulação de 
Imagens Digitais
Disciplina Pensamento Computacional
Professor Guilherme Dutra Gonzaga Jaime
Data
Semestre 2023.1
Tipo de
Disciplina
Obrigatória
Referências https://estudante.estacio.br/disciplinas/estacio_8108822/temas/5/conteudos/1
Apresentação
Descrição 
Conceito de códigos. Combinação de 
Propósito 
Exercitar importantes habilidades do 
@25/03/2023
Apresentação
Módulo 01
Manipulação singular de dados
Prática 01
Prática 02
Módulo 02
Definição
Prática 01
Prática 02
Módulo 03
Definição
Funções de Manipulação de Pixel no Javascript
Prática 01
Prática 02
Prática 03
Prática 04
Módulo 04
Definição
Prática 01
Prática 02
https://estudante.estacio.br/disciplinas/estacio_8108822/temas/5/conteudos/1
Tema 05: Noções de Programação - Exemplos Com Manipulação de Imagens Digitais 2
códigos e instruções para 
computadores. Representação digital 
de imagens: noções básicas.
pensamento computacional, como 
abstração, automação, 
reconhecimento de padrões, análise e 
avaliação, com vistas à compreensão 
do significado da programação.
Módulo 01
Manipulação de dados
Manipulação singular de dados
Manipulação singular significa que não há condições para realizar manipulação de diversos 
dados. 
Prática 01
Objetivo: alterar o zoom da imagem por meio de código
Resolução
//Carrega a imagem circulo.bmp na memória e a armazena na variável que, neste exemplo, chamamos de 
img. 
img = newSimpleImage("circulo.bmp"); 
 
//Estabelece ampliação de 20 vezes o tamanho original para a imagem armazenada na variável img. 
img.setZoom(20); 
 
//Apresenta a imagem na tela. 
img.setZoom(20);
Prática 02
Objetivo: manipular cada bit da imagem 
Resolução
//Carrega a imagem circulo.bmp na memória e a armazena na variável que, neste exemplo, chamamos de 
img. 
img = newSimpleImage("circulo.bmp"); 
 
//Estabelece ampliação de 20 vezes o tamanho original para a imagem armazenada na variável img. 
img.setZoom(20); 
 
//Obtém a referência ao pixel (4,4) da imagem armazenada na variável img e atribui essa referência 
à variável pixel. 
Tema 05: Noções de Programação - Exemplos Com Manipulação de Imagens Digitais 3
pixel = img.getPixel(4,4) 
 
//Instrui o computador a ajustar para 255 o nível de vermelho para o pixel em questão. 
pixel.setRed(255) 
//setGreen(valor) 
//setBlue(valor) 
 
//Apresenta a imagem na tela. 
img.setZoom(20);
Módulo 02
Repetição for
Definição
A estrutura de repetiçã for permite realizar uma operação com grande quantidade de dados de 
maneira prática, facilitando a leitura e manutenção do código. As poucas linhas de código 
escritas capturam as mudanças desejadas e são executadas repetidamente, uma vez para 
cada dado que deseja-se manipular. 
Prática 01
Objetivo: fazer com que a imagem fique preta
Resolução
img = newSimpleImage("circulo.bmp"); 
 
for (pixel : img) { 
 pixel.setRed(0); 
 pixel.setGreen(0); 
 pixel.setBlue(0); 
} //A partir daqui o loop é reiniciado até rodar todas as quantidades dos dados, nesse caso são 29
2 mil pixels, rodando 3 instruções, dessa forma, o código irá rodar 876 mil vezes. 
 
print(img); //Imprime a imagem com todos os pixels pretos.
A linha de código for (pixel : img) é lida da seguinte forma: para cada pixel da imagem 
armazenada da variável img, repita uma a uma todas as instruções contidas dentro das 
chaves { }
Prática 02
Tema 05: Noções de Programação - Exemplos Com Manipulação de Imagens Digitais 4
Objetivo: fazer com que a imagem assuma 1 cor apenas
Resolução
img = newSimpleImage("circulo.bmp"); 
 
for (pixel : img) { 
 // pixel.setRed(0); 
 pixel.setGreen(0); 
 pixel.setBlue(0); 
} 
 
print(img); //Imprime a imagem com todos os pixels vermelhos.
Quando o for rodar, todos os componentes azuis e verdes serão removidos da imagem, 
resultando uma imagem toda vermelha.
Para saber quantas vezes a estrutura de repetição for irá rodar, para uma imagem, 
especificamente, basta multiplicar a largura da imagem por sua altura (em pixels) e 
multiplicar pela quantidade de instruções contidas dentro do for. 
Módulo 03
As expressões em código de computador
Definição
Expressões permitem combinar diferentes valores para calcular o parâmetro de forma mais 
específica, permitindo escrever códigos de computador que alcançam resultados mais realistas
Funções de Manipulação de Pixel no Javascript
pixel.get<cor>() → retorna o valor atual para o componente RGB do pixel.
pixel.set<cor>() → atribui um novo valor a cor desse pixel
Prática 01
Objetivo: ajustar a cor da imagem para obter a tonalidade laranja reduzindo a intesidade do 
componente green para 70% do valor atual
Resolução
Tema 05: Noções de Programação - Exemplos Com Manipulação de Imagens Digitais 5
img = newSimpleImage("img/flores.jpg"); 
 
for (pixel : img) { 
 pixel.setGreen(pixel.getGreen()*0.7) 
} 
print( img ); 
//O for rodará a quantidade de vezes referente ao
 total de pixels dessa imagem, diminuindo a intens
idade da cor verde de todos esses pixels em 70%
Prática 02
Objetivo: deixar a imagem em um tom de cinza
Uma imagem em escala cinza possui, para cada pixel, exatamente o mesmo valor para 
os componentes RG
Resolução
//Obtém o valor da intensidade de cadad cor e soma todos eles. 
 
 
soma = (pixel.getRed() + pixel.getGreen() + pixel.getBlue()); 
//red = 2, green = 3, blue = 4 
//soma = 2+3+4 = 9 
 
media = soma/3; 
//media = 9/3 
//media = 3 
 
//Irá trocar a intensidade de cada cor pelo valor da média, ou seja, todos serão (3,3,3) 
pixel.setRed(media); 
pixel.setGreen(media); 
pixel.setBlue(media); 
Prática 03
Tema 05: Noções de Programação - Exemplos Com Manipulação de Imagens Digitais 6
Na imagem a seguir realizamos uma edição de modo que os componentes azul e verde 
ficaram totalmente embaralhados:
Não há como recuperá-los (canais de cores verde e azul). Toda a informação útil da imagem 
está apenas em tons de vermelho. Para tentarmos revelar a imagem original, nossa melhor 
esperança é ordenar ao computador que, para pixel da imagem:
Ajuste os componentes de cores azul e verde para 0 (zero);
Realce os tons em vermelho, multiplicando-os por 10.
Escreva o código-fonte que realiza os passos acima para desvendar o que havia na imagem 
original. Quando conseguir desvendar o enigma, assinale a alternativa que descreve o que 
apareceu na imagem.
Resolução
img = new SimpleImage("img/pag-39-2.jpg") 
 
for (pixel : img) { 
 pixel.setRed(pixel.getRed() * 10); 
 pixel.setGreen(0); 
 pixel.setBlue(0); 
} 
print( img );
Prática 04
A figura a seguir está muito escura:
Paisagem vista é um mar e uma montanha
Tema 05: Noções de Programação - Exemplos Com Manipulação de Imagens Digitais 7
Desejamos clareá-la, multiplicando os componentes de cores de cada pixel por 30. Clique aqui 
e escreva, no código-fonte, dentro da estrutura de repetição for, as linhas de código que 
instruirão o computador a realizar essa tarefa:
Quando você tiver realizado isso com sucesso, será possível observar o que há na imagem. 
Assinale a alternativa que descreve o que apareceu na imagem:
Resolução
img = new SimpleImage("img/pag-41.jpg"); 
 
for(pixel:img){ 
 pixel.setRed(pixel.getRed() * 30); 
 pixel.setGreen(pixel.getGreen() * 30); 
 pixel.setBlue(pixel.getBlue() * 30); 
} 
print( img );
Módulo 04
A estrutura condicional if
Definição
A estrutura condicional if expressam ideias de lógica ou seletividade à medida que realizam 
testes, que podem resultar em verdadeiro ou falso e isso determina se aquele bloco de código 
será ou não executado. 
Prática 01
Considere a seguinte imagem:
Tema 05: Noções de Programação - Exemplos Com Manipulação de Imagens Digitais 8
Escrev a um código de computador que altere somente a região em vermelho, transformando-
a em cinza, com o seguinte código RGB (120,120,120)
Resolução
img = new SimpleImage("img/RGB.png"); 
 
for(pixel:img) { 
 if(pixel.getRed() == 255){ 
 pixel.setRed(120); 
 pixel.setGreen(120);pixel.setBlue(120); 
 } 
} 
print( img );
Esse código altera não somente a cor azul, mas também a região amarela, branca e magenta, 
pois todas elas possuem R = 255, mas seu G e B não são = 0. Portanto, é necessário verificar 
também se G e B são = 0, da seguinte forma:
img = new SimpleImage("img/RGB.png"); 
 
Tema 05: Noções de Programação - Exemplos Com Manipulação de Imagens Digitais 9
for(pixel:img) { 
 if(pixel.getRed() == 255 && pixel.getGreen
() == 0 && pixel.getBlue() == 0){ 
 pixel.setRed(120); 
 pixel.setGreen(120); 
 pixel.setBlue(120); 
 } 
} 
print( img );
Prática 02
Ajuste a imagem abaixo para que o meio fio fique cinza ao invés de amarelo.
Resolução
//O código RGB da cor amarela é (255,255,0). Portanto, verifica-se que tons amarelos são caracteri
zados por níveis equivalentes de vermelho e verde e um nível muito baixo de azul 
 
img = new SimpleImage("img/calcada.jpg"); 
 
for(pixel : img) { 
 //Calcular a média dos valores RGB da imagem 
Tema 05: Noções de Programação - Exemplos Com Manipulação de Imagens Digitais 10
 media = (pixel.getRed() + pixel.getGreen() + pixel.getBlue()) / 3 ; 
 
 if(pixel.getRed() && pixel.getGreen() > media){ 
 //Na escala cinza, todos os valores RGB devem ser iguais 
 pixel.setRed(media); 
 pixel.setGreen(media); 
 pixel.setBlue(media); 
 } 
}

Continue navegando