Prévia do material em texto
ANO
2025
ATIVIDADE PRÁTICA PROCESSAMENTO DE IMAGENS
Prof. Charles Way Hun Fung, MSc.
INTRODUÇÃO
Olá a todos.
Sejam todos muito bem-vindos!
Esta avaliação foi planejada e preparada para a disciplina de Processamento de Imagens dos Cursos de Engenharia de Computação e Engenharia Elétrica do Centro Universitário Internacional UNINTER.
O objetivo desta atividade é fazer com que você, aluno, desenvolva os conhecimentos teóricos aprendidos nas rotas de maneira práticas. Para o desenvolvimento desta atividade será utilizado software Scilab para implementação dos algoritmos.
Ao longo desse roteiro serão passadas as orientações gerais para realização da avaliação bem como os seus critérios de correção. Na sequência, apresenta-se um exemplo comentado de como se deve ser entregue uma questão. Seguindo o roteiro estarão as práticas a serem realizadas, cada uma delas possui um tema e uma explicação de como deve ser feita e como será avaliada.
No mais, desejo-lhe boa atividade prática em nome do professor
da disciplina de Processamento de Imagens.
Roteiro de Atividade Prática de Processamento de Imagens
10
Sumário
INTRODUÇÃO 1
ORIENTAÇÕES GERAIS 3
FORMATO DE ENTREGA 3
CRITÉRIOS DE AVALIAÇÃO 4
FORMATO DA APRESENTAÇÃO 5
IDENTIFICAÇÃO PESSOAL 6
CÓDIGO 7
RESPOSTA DA PERGUNTA 8
EXEMPLO DE APRESENTAÇÃO DE QUESTÃO 9
PRÁTICA 01 - Histograma 10
Histograma e equalização 10
PRÁTICA 02 – Transformações geométricas 12
Arrumar o botão da calculadora 12
PRÁTICA 03 – Filtragem Espacial 14
Filtragem de ruído 14
PRÁTICA 04 – Morfologia matemática 15
Realçar os elementos da imagem 15
ORIENTAÇÕES GERAIS
FORMATO DE ENTREGA
O formato de entrega desejável das práticas desse roteiro, deve estar de acordo com o que é visto na seção “EXEMPLO DE APRESENTAÇÃO DE PRÁTICA”.
Elaborou-se um documento (“Caderno de Resolução de Atividade Prática de Processamento de Imagens.docx”) com o propósito de auxiliar na formatação exigida.
Determina-se que os trabalhos devem ser enviados no formato PDF. Uma vez que formatos .doc ou .docx podem apresentar falhas do tipo na codificação, carregamento ou apresentação de imagens.
CRITÉRIOS DE AVALIAÇÃO
Os critérios de avaliação desse trabalho visam deixar a avaliação o mais justa e transparente possível. Nessa avaliação, cada questão será corrigida individualmente conforme a seguinte equação:
𝑁 = (𝐹𝐸). (𝐼𝑃) (
𝐶𝑂𝐷 + 𝑅𝐸𝑆 + 𝑆𝐼𝑀
)
3
Em que:
𝑁 (𝑁𝑜𝑡𝑎 𝑑𝑎 𝑄𝑢𝑒𝑠𝑡ã𝑜): Nota total da questão, podendo variar de 0 até 1,00.
𝐹𝐸 (𝐹𝑜𝑟𝑚𝑎𝑡𝑜 𝑑𝑎 𝐸𝑛𝑡𝑟𝑒𝑔𝑎): Nota do Formato de Entrega, podendo variar de 0 até 1,00.
𝐼𝑃 (𝐼𝑑𝑒𝑛𝑡𝑖𝑓𝑖𝑐𝑎çã𝑜 𝑃𝑒𝑠𝑠𝑜𝑎𝑙): Nota Identificação Pessoal, podendo variar de 0 até 100.
𝐶𝑂𝐷 (𝐶ó𝑑𝑖𝑔𝑜): Nota do Código, podendo variar de 0 até 100.
𝑅𝐸𝑆 (𝑅𝑒𝑠𝑝𝑜𝑠𝑡𝑎): Nota da Resposta, podendo variar de 0 até 100.
𝑆𝐼𝑀 (𝑆𝑖𝑚𝑢𝑙𝑎çã𝑜): Nota da Simulação, podendo variar de 0 até 100.
Cada um dos itens/critérios que compõe a equação acima será detalhado nas subseções a seguir. Se mesmo assim houver dúvidas, não hesite em perguntar. O desconhecimento dos critérios não será aceito como desculpa!
FORMATO DA APRESENTAÇÃO
O formato da apresentação é um dos critérios de avaliação, pois um engenheiro deve ser capaz de seguir normas no momento de elaboração de relatórios técnicos, manuais e outros documentos afins.
As possíveis notas desse critério são apresentadas na tabela a seguir:
Tabela 1: Possíveis notas no formato de apresentação
NOTA
DESCRIÇÃO NA DEVOLUTIVA
COMENTÁRIOS
1,00
Formato da apresentação está correto
Está de acordo com o exemplo (ver a seção “EXEMPLO DE APRESENTAÇÃO DE PRÁTICA”
para maiores detalhes)
0,70
Formato da apresentação está parcialmente correto
Está muito próximo do exemplo, mas apresenta alguns erros
0,50
Formato da apresentação está incorreto
Não seguiu o exemplo.
IDENTIFICAÇÃO PESSOAL
Todas as questões devem apresentar um identificador pessoal nas seguintes partes:
· No código fonte o aluno deve indicar o nome ou o RU.
As possíveis notas para esse critério são apresentadas na tabela a seguir:
Tabela 2: Possíveis notas critério de Identificação Pessoal
NOTA
DESCRIÇÃO NA DEVOLUTIVA
COMENTÁRIOS
1,00
Apresentou o identificador pessoal no código.
Está de acordo com o exemplo (ver a seção “EXEMPLO DE APRESENTAÇÃO DE
QUESTÃO” para maiores detalhes).
0,50
Não apresentou identificador pessoal no código.
Questão sem nenhuma identificação de autoria.
0,00
Apresentou o identificador de outra pessoa no código.
A questão veio com identificador pessoal de outra pessoa.
CÓDIGO
A apresentação do código compõe um terço da nota total da questão. Este será avaliado conforme a tabela a seguir:
As possíveis notas para esse critério são apresentadas na tabela a seguir:
Tabela 3: Possíveis notas na apresentação do código
NOTA
DESCRIÇÃO NA DEVOLUTIVA
COMENTÁRIOS
100
Código correto e organizado
Está de acordo com o exemplo (ver a seção “EXEMPLO DE APRESENTAÇÃO DE QUESTÃO”
para maiores detalhes)
70
Código correto e desorganizado.
Apresentou comandos que não fazem parte da resposta ou resultados comandos.
60
Código parcialmente correto e organizado.
Errou um pouco no código, mas colocou no trabalho apenas o código útil.
40
Código parcialmente correto e desorganizado.
Errou um pouco no código, mas colocou códigos que não fazem parte da resposta ou resultado de
comandos
0
Sem código ou com código
incorreto
A questão não apresentou código ou o código estava errado.
OBS. 1: NÃO ESQUECER DO IDENTIFICADOR PESSOAL.
RESPOSTA DA PERGUNTA:
A resposta da pergunta compõe um terço da nota total da questão. Essa parte aplica-se a uma pergunta direcionada ao conteúdo da questão.
As possíveis notas para esse critério são apresentadas na tabela a seguir:
Tabela 4: Possíveis notas na apresentação das explicações
NOTA
DESCRIÇÃO NA DEVOLUTIVA
COMENTÁRIOS
100
Explicação/Resposta atende o solicitado e há clareza e organização.
Está de acordo com o exemplo (ver a seção “EXEMPLO DE APRESENTAÇÃO DE QUESTÃO”
para maiores detalhes) ou código fonte comentado de forma adequada e completa
80
Explicação/Resposta atende o solicitado, porém não há clareza e/ou organização
Ex. de não clareza ao responder à pergunta do EXEMPLO: “O histograma da imagem contém pixels com diversos tons de cinza, mostrando que a
imagem tem um contraste”.
70
Explicação/Resposta atende
parcialmente o solicitado e há
clareza e organização
Ex. de explicação que atende parcialmente pergunta
do EXEMPLO: “O formato do histograma mostra o contraste da imagem”.
60
Explicação/Resposta atende parcialmente o solicitado e não há clareza e/ou organização
Ex. de explicação que atende parcialmente pergunta do EXEMPLO e sem clareza: “O contraste da imagem pode ser visto no histograma”.
40
Explicação/Resposta atende
precariamente o solicitado, mas
há clareza e organização
Ex. de explicação que atende precariamente pergunta do EXEMPLO: “O histograma mostra a
distribuição de pixels da imagem”.
30
Explicação/Resposta atende
precariamente o solicitado e não
há clareza e/ou organização
Ex. de explicação que atende precariamente
pergunta do EXEMPLO sem clareza: “O contraste da imagem no histograma”.
0
Sem explicação ou explicação incorreta
A questão veio sem explicação ou a explicação está errada.
EXEMPLO DE APRESENTAÇÃO DE QUESTÃO
Prática XX – Conversão para níveis de cinza
Questão XX – Converta a imagem colorida lena_color_256.tif para níveis de cinza usando o comando rgb2gray. Apresente o código e
imagens resultantes.
Faça aparecer os algarismos
I. Apresentação do Código (não esquecer do identificador pessoal):
(código-fonte para exemplificação)
II. Apresentação da imagem resultante:
Figura 1: Imagem em níveis de cinza.
III. Quantas dimensões tem uma imagem em níveis de cinza? Quais?
Resposta: Duas, como é uma matriz 2D, possuí apenas linhas e colunas.
OBS1: No caderno de prova não precisa circular e apontar o identificador pessoal.
OBS2: As imagens são meramenteilustrativas elas demonstram onde devem ser inseridas e não possuem correlação com a atividade designada.
PRÁTICA 01 - HISTOGRAMA
Esta primeira prática tem como objetivo o contato com as ferramentas de software utilizadas na disciplina.
Os códigos devem ser desenvolvidos na ferramenta Scilab.
HISTOGRAMA E EQUALIZAÇÃO
Para este exercício faça a leitura das imagens imagem1a.tif e imagem1b.tif utilizando o comando imread. A seguir realize os seguintes procedimentos:
1. Converta a imagem imagem1b.tif para níveis de cinza utilizando o comando rgb2gray.
2. Faça o levantamento do histograma das imagens imagem1a.tif e imagem1b.tif convertida para níveis de cinza.
3. Realize a equalização das imagens imagem1a.tif e imagem1b.tif convertida para níveis de cinza.
4. Apresente os resultados deste processamento em 2 (duas) linhas (Uma sequência de imagens por linha) e 3 (três) colunas (Imagem – Histograma – Histograma equalizado), sendo a primeira linha com a imagem1a e seus respectivos histograma e histograma equalizado. Na segunda linha com a imagem1b, com os respectivos histogramas da mesma forma que a primeira linha.
Dica: Para realizar este exercício deve-se fazer uso das seguintes funções:
A) Função rgb2gray: Conversão para níveis de cinza
Exemplo:
imagem = imread('baboo_colorido.tif'); cinza = rgb2gray(imagem);
B) Função imhist: Histograma de uma imagem
Exemplo:
imagem = imread('baboo_colorido.tif');
cinza = rgb2gray(imagem);//imagem em níveis de cinza [qtd, nvl] = imhist(cinza);
plot2d3(nvl,qtd);//plota o histograma
C) Função imhistequal: Equalização de histograma
Exemplo:
imagem = imread('baboo_colorido.tif'); cinza = rgb2gray(imagem);
imEQ = imhistequal(cinza);
[qtdEQ,nvlEQ] = imhist(imEQ); plot2d3(nvlEQ,qtdEQ);
D) Função subplot: Apresentação de mais de uma imagem/gráficos juntos
Exemplo:
imagem = imread('baboo_colorido.tif');
cinza = rgb2gray(imagem);//imagem em níveis de cinza [qtd, nvl] = imhist(cinza);//histograma subplot(131)//uma linha, 3 colunas, primeira imagem imshow(imagem)
subplot(132) //uma linha, 3 colunas, segunda imagem imshow(cinza)
subplot(133) //uma linha, 3 colunas, terceira imagem plot2d3(nvl,qtd)
Após conferir o funcionamento, deve-se preencher o caderno de resolução como se pede.
PRÁTICA 02 – TRANSFORMAÇÕES GEOMÉTRICAS
Para este exercício faça a leitura da imagem imagem2.tif. Esta figura possuí três botões que estão com posicionamento errado, entretanto o problema será focado no botão que está no quadrado vermelho como pode ser visto na figura 2:
Figura 2 – imagem2.tif com o botão modificado marcado.
ARRUMAR O BOTÃO DA CALCULADORA
Neste item, sua tarefa é arrumar o botão marcado na imagem2.tif, de forma que este botão volte a sua posição correta (Com o número 9 e o escrito “MATRIX” na horizontal). Para isso o aluno deve:
1) Utilizar uma função de corte (imcrop ou imcropm), para remover o botão da imagem da imagem2.tif.
2) Realizar o processamento necessário para que o botão volte a posição correta.
3) Mostre o resultado.
Dica 1: Para realizar o processamento no botão, deve-se fazer uso do processamento corte, que consiste em retirar copiar apenas uma submatriz da imagem original.
Há duas funções que podem fazer isto:
A) Função imcrop: Realiza um corte de uma área especificada por (x1, y1) e (x2, y2).
Exemplo:
imagem = imread('house.tif'); x1=20;
y1=30; x2=200; y2=300;
resultado = imcrop(imagem,[x1,y1,x2,y2]); imshow(resultado)
B) Função imcropm:
Exemplo:
imagem = imread('house.tif'); resultado = imcropm(imagem);
Observação: Antes de usar o comando imcropm, feche todas as janelas que possuem imagens ou gráficos produzidos por comandos do Scilab.
Dica 2: Para arrumar o botão, será necessário um processamento de rotação para isto:
A) Função imrotate: Rotaciona a imagem no sentido anti-horário de acordo com o valor do ângulo colocado como parâmetro.
Exemplo:
imagem = imread('cameraman.tif'); angulo = 90;
resultado = imrotate(imagem,angulo); imshow(resultado)
Observação: Faça o teste com outros valores na variável ângulo.
Após conferir o funcionamento, deve-se preencher o caderno de resolução como se pede.
PRÁTICA 03 – FILTRAGEM ESPACIAL
Nesta prática o aluno deverá utilizar filtros para remover (da melhor forma possível) um ruído existente na imagem, para isto faça upload da imagem3.tif e utilizando filtros.
Para colocar ruído na imagem3.tif deve-se fazer uso das funções:
1. Ruído Gaussiano:
imagem = imread('house.tif');
ruido = imnoise(imagem,'gaussian'); imshow(ruido);
2. Ruído Sal e Pimenta:
imagem = imread('house.tif');
ruido = imnoise(imagem,'salt & pepper'); imshow(ruido);
FILTRAGEM DE RUÍDO
Neste exercício deve-se:
1. Aplicar um dos tipos de ruído na imagem3.tif
2. Aplicar os filtros de média e mediana.
3. Mostrar os resultados.
4. Faça a comparação entre o resultado destes dois filtros e responda à pergunta: Qual resultado foi o melhor e por quê?
Dica: As funções dos filtros são:
a) Filtro de média:
Exemplo:
imagem = imread('cameraman.tif');
filtro = fspecial('average',9); //Este 9 indica que a máscara é 3x3. resultado = imfilter(imagem,filtro);
imshow(resultado)
Observação: Para aumentar a intensidade do filtro, aumente o valor da máscara.
b) Filtro de mediana:
Exemplo:
imagem = imread('cameraman.tif');
resultado = immedian(imagem,9); //Este 9 indica que a máscara é 9x9 imshow(resultado)
Após conferir o funcionamento, deve-se preencher o caderno de resolução como se pede.
PRÁTICA 04 – MORFOLOGIA MATEMÁTICA
Nesta prática será utilizada a imagem imagem4.tif, a qual possuí ruídos e artefatos na imagem.
A seguir temos a ilustração da imagem que será utilizada nesta prática:
Figura 3 – imagem4.tif.
REALÇAR OS ELEMENTOS DA IMAGEM
A imagem4.tif consiste em uma imagem que foi retirada de um laboratório de biologia, os elementos que aparecem são células que devem ser contadas pelos pesquisadores, entretanto para colocar no software que realiza a contagem, é necessário remover o ruído e binarizar a imagem (imagem preta e branca). No resultado as células devem estar com a cor branca e o fundo de cor preta. Deve-se tomar cuidado em manter a integridade das células após o processamento.
Para realizar esta atividade deve-se:
1. Aplicar um filtro (média ou mediana) para reduzir o ruído gaussiano da imagem.
2. Binarizar a imagem, de acordo com um limiar adequado.
3. Criar um elemento estruturante
4. Utilizar operações morfológicas: Erosão, dilatação, abertura ou fechamento. Para realçar os elementos na imagem.
5. Mostrar o resultado.
Dica: A seguir a definição de algumas funções que poderão ser usadas na resolução deste exercício:
a) Binarização ou limiarização: Consiste em transformar a imagem em binária (valores 0’s e 1’s), para isto é fixado um valor (limiar) e compara-se com o histograma da imagem, valores acima deste valor são 1 (branco) e abaixo 0 (preto).
Exemplo:
imagem = imread('cameraman.tif');//imagem em níveis de cinza limiar = 0.5;//50% do histograma
resultado = im2bw(imagem,limiar); imshow(resultado)
b) Elemento estruturante: Este elemento é utilizado nas operações morfológicas, a intensidade do processamento pode variar de acordo com a dimensão deste elemento.
Exemplo:
//Gera um elemento estruturante retangular de dimensões 3x3 EE = imcreatese('rect',3,3);
c) Erosão:
Exemplo:
imagem = imread('cameraman.tif');
binario = im2bw(imagem,0.5); //Imagem binarizada com limiar em 50%
EE = imcreatese('rect',3,3); //Elemento estruturante resultado = imerode(binario,EE);
imshow(resultado)
d) Dilatação:
Exemplo:
imagem = imread('cameraman.tif');
binario = im2bw(imagem,0.5); //Imagem binarizada com limiar em 50%
EE = imcreatese('rect',3,3); //Elemento estruturante resultado = imdilate(binario,EE);
imshow(resultado)
e) Abertura:
Exemplo:
imagem = imread('cameraman.tif');
binario = im2bw(imagem,0.5); //Imagem binarizada com limiar em 50%
EE = imcreatese('rect',3,3); //Elemento estruturante resultado = imopen(binario,EE);
imshow(resultado)
f) Fechamento:
Exemplo:
imagem = imread('cameraman.tif');
binario = im2bw(imagem,0.5); //Imagem binarizada comlimiar em 50%
EE = imcreatese('rect',3,3); //Elemento estruturante resultado = imclose(binario,EE);
imshow(resultado)
Após conferir o funcionamento, deve-se preencher o caderno de resolução como se pede.
image4.png
image5.png
image6.jpeg
image7.jpeg
image8.png
image9.jpeg
image1.png
image2.png
image3.png