Buscar

Caderno_de_resolucao Processamento Digital de Imagens- 2021

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 23 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 23 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 23 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

Processamento de Imagens 
 
 
2021 
CADERNO DE RESOLUÇÃO DA ATIVIDADE PRÁTICA 
 
 
 
 
Atividade Prática de Processamento de Imagens 1 Prof. Charles Way Hun Fung, MSc 
1. Mostre o histograma de uma destas imagens, explique o formato do histograma, a 
respeito de níveis de cinza, quantidade de pixels e contraste. 
 
I) Apresentação do Código: 
 
--> nestor_im = imread('house.tif'); 
--> [qtd, niveis] = imhist(nestor_im); 
--> plot2d3(niveis,qtd) 
 
 
II) Apresentação das Imagens Resultantes: 
 
 
 
Figura 1: (Histograma ‘house.tif’) 
 
III) Explicação: 
 
Nesta forma do histograma, são apresentados 
os níveis de cinza no eixo ‘x’ e a quantidade de 
pixels no eixo ‘y’. O comportamento do 
histograma no eixo ‘x’ funciona da seguinte 
forma, o ZERO indica o nível PRETO e 255 
indica o BRANCO. Pode-se perceber que 
existem mais de 70.000 pixels de valor próximo 
a 200, que representa nível de cinza mais claro. 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 2 Prof. Charles Way Hun Fung, MSc 
2. Faça a plotagem das imagens com seus respectivos histogramas usando subplot, use 
3 linhas e 2 colunas. Explique a diferença entre os histogramas. 
 
Apresentação do Código: 
 
--> nestor_im = imread('house.tif'); 
--> nestor_im1 = imread('cameraman.tif'); 
--> nestor_im2 = imread('lena_color_256.tif'); 
--> imgray = rgb2gray(nestor_im2); 
--> [qtd, niveis] = imhist(nestor_im); 
--> [qtd1, niveis1] = imhist(nestor_im1); 
--> [qtd2, niveis2] = imhist(imgray); 
--> subplot(321) 
--> imshow(nestor_im) 
--> subplot(322) 
--> plot2d3(niveis,qtd) 
--> subplot(323) 
--> imshow(nestor_im1) 
--> subplot(324) 
--> plot2d3(niveis1,qtd1) 
--> subplot(325) 
--> imshow(imgray) 
--> subplot(326) 
--> plot2d3(niveis2,qtd2) 
 
I) Apresentação das Imagens Resultantes: 
 
 
Figura 2: Resultado questão 2 
 
II) Explicação: 
 
Para execução deste exercício, 
primeiramente, a imagem 
'lena_color_256.tif', foi 
transformada para níveis de cinza pelo 
comando ‘rgb2gray(nestor_im2)’ 
então podemos começar a analisar os 
histogramas. 
Na primeira imagem percebemos 
que há muitos pixels de um nível de cinza 
e quantidades menores de outros níveis. 
Na segunda imagem temos dois 
picos de níveis de cinza, o que nos 
mostra que a imagem apresenta um 
pouco de contraste. 
Na terceira os pixels estão mais 
distribuídos, o que representa uma 
imagem mais harmônica. 
 
 
 
 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 3 Prof. Charles Way Hun Fung, MSc 
3. Realize a equalização na imagem cameraman.tif, faça uma comparação entre a imagem 
original e a equalizada. Mostre diferenças dos histogramas (original e equalizado) e 
explique o processamento realizado pela equalização. 
 
I) Apresentação do Código: 
 
--> nestor_im = imread('cameraman.tif'); 
--> [qtd,niveis] = imhist(nestor_im) 
--> nestor_equalizada = imhistequal(nestor_im); 
--> imshow(nestor_equalizada); 
--> [qtdeq,niveiseq]=imhist(nestor_equalizada); 
--> subplot(221) 
--> imshow(nestor_im); 
--> subplot(222) 
--> plot2d3(niveis,qtd) 
--> subplot(223) 
--> imshow(nestor_equalizada); 
--> subplot(224) 
--> plot2d3(niveiseq,qtdeq) 
 
II) Apresentação das Imagens Resultantes: 
 
 
 
 
Figura 3: ‘cameraman.tif’ equalizado 
 
III) Explicação: 
 
Ao executar a equalização, 
podemos perceber no histograma uma 
dispersão maior dos pixels, com mais 
quantidade de pixels próximo ao nível 255 
do eixo ‘x’ que significa que a imagem está 
mais clara do que a original, assim como 
pode ser conferido na imagem ao lado. 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 4 Prof. Charles Way Hun Fung, MSc 
 
4. Em ambas imagens aplique um filtro para detecção de pontos isolados. Para isto 
procure uma máscara e utilize conv2 para aplicar o filtro na imagem. Explique o que 
aconteceu com a imagem resultante, quais detalhes foram enfatizados com este 
processamento? 
 
I) Apresentação do Código: 
--> nestor_aviao = imread('jetplane.tif'); 
--> nestor_ponte = imread('walkbridge.tif'); 
--> aviao_real = double(nestor_aviao); 
--> ponte_real = double(nestor_ponte); 
--> mascara_laplac = [-1,-1,-1;-1,8,-1;-1,-1,-1]; 
--> aviao = conv2(aviao_real,mascara_laplac); 
--> ponte = conv2(ponte_real, mascara_laplac); 
--> subplot(221); 
--> imshow(nestor_aviao) 
--> subplot(222); 
--> imshow(aviao) 
--> subplot(223); 
--> imshow(nestor_ponte) 
--> subplot(224); 
--> imshow(ponte) 
 
II) Apresentação das Imagens Resultantes: 
 
 
 
Figura 4: Máscara laplaciana 
III) Explicação: 
 
 
Para este exercício foi utilizada a 
máscara laplaciana, que é utilizada para 
detecção de pontos isolados. 
Nos resultados vimos que ambas 
as imagens possuem muitos pontos 
claros com poucos níveis de cinza. Já 
nas imagens resultantes da convolução 
notamos que os contornos do avião e 
da ponte estão se destacando mais, por 
ter mais pontos brancos em torno de 
ambos. 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 5 Prof. Charles Way Hun Fung, MSc 
5. Em ambas imagens aplique os filtros para detecção de linha: horizontal, vertical, 45° e 
-45°. Para isto procure uma máscara para cada filtro (tabela anterior) e utilize conv2 
para aplicar o filtro na imagem. Plote o resultado e explique o que aconteceu com a 
imagem. 
 
I) Apresentação do Código: 
 
--> nestor_aviao = imread('jetplane.tif'); 
--> nestor_ponte = imread('walkbridge.tif'); 
--> aviao_real = double(nestor_aviao); 
--> ponte_real = double(nestor_ponte); 
--> masc_horiz = [-1,-1,-1;2,2,2;-1,-1,-1] 
--> masc_vert = [-1,2,-1;-1,2,-1;-1,2,-1] 
--> masc_45 = [2,-1,-1;-1,2,-1;-1,-1,2] 
--> masc_45inv = [-1,-1,2;-1,2,-1;2,-1,-1] 
--> aviao_hor = conv2(aviao_real,masc_horiz); 
--> aviao_vert = conv2(aviao_real,masc_vert); 
--> aviao_45 = conv2(aviao_real,masc_45); 
--> aviao_45inv = conv2(aviao_real,masc_45inv); 
--> ponte_hor = conv2(ponte_real,masc_horiz); 
--> ponte_vert = conv2(ponte_real,masc_vert); 
--> ponte_45 = conv2(ponte_real,masc_45); 
--> ponte_45inv = conv2(ponte_real,masc_45inv); 
--> subplot(241); 
--> imshow(aviao_hor) 
--> subplot(242); 
--> imshow(aviao_vert) 
--> subplot(243); 
--> imshow(aviao_45) 
--> subplot(244); 
--> imshow(aviao_45inv) 
--> subplot(245); 
--> imshow(ponte_hor) 
--> subplot(246); 
--> imshow(ponte_vert) 
--> subplot(247); 
--> imshow(ponte_45) 
--> subplot(248); 
--> imshow(ponte_45inv) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 6 Prof. Charles Way Hun Fung, MSc 
II) Apresentação das Imagens Resultantes: 
 
 
Figura 5: Imagens com filtro horizontal, vertical, 45 e -45 respectivamente em cada linha. 
 
III) Explicação: 
Após a aplicação dos filtros, podemos perceber as imagens acima. Na primeira linha estão 
as imagens do avião, e na linha de baixo as imagens da ponte. Da esquerda para direita, a 
imagem representa filtro horizontal, vertical, 45 graus e -45 graus respectivamente. 
No filtro horizontal deveríamos conseguir observar as linhas horizontais da figura, o que 
se percebe nas imagens da primeira coluna. Na filtragem vertical seriam destacadas as linhas 
verticais, representada na segunda coluna, e assim também com as filtragens de 45 graus na 
terceira coluna e de -45 na quarta coluna. 
 
 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 7 Prof. Charles Way Hun Fung, MSc 
6. Em ambas imagens aplique os filtros para detecção de borda: Roberts, Prewitt, Sobel. 
Para isto procure uma máscara para cada filtro e utilize conv2 para aplicar o filtro na 
imagem. Plote o resultado e explique o que aconteceu com a imagem. 
 
I) Apresentação do Código: 
 
--> nestor_aviao = imread('jetplane.tif'); 
--> nestor_ponte = imread('walkbridge.tif'); 
--> aviao_real = double(nestor_aviao); 
--> ponte_real = double(nestor_ponte); 
--> roberts = [0,0,-1;0,1,0;0,0,0]; 
--> sobel = [-1,-2,-1;0,0,0;1,2,1]; 
--> prewitt = [-1,-1,-1;0,0,0;1,1,1]; 
--> aviao_roberts = conv2(aviao_real,roberts); 
--> aviao_sobel = conv2(aviao_real,sobel);--> aviao_prewitt = conv2(aviao_real,prewitt); 
--> ponte_roberts = conv2(ponte_real,roberts); 
--> ponte_sobel = conv2(ponte_real,sobel); 
--> ponte_prewitt = conv2(ponte_real,prewitt); 
--> subplot(241) 
--> imshow(nestor_aviao) 
--> subplot(242) 
--> imshow(aviao_roberts) 
--> subplot(243) 
--> imshow(aviao_sobel) 
--> subplot(244) 
--> imshow(aviao_prewitt) 
--> subplot(245) 
--> imshow(nestor_ponte) 
--> subplot(246) 
--> imshow(ponte_roberts) 
--> subplot(247) 
--> imshow(ponte_sobel) 
--> subplot(248) 
--> imshow(ponte_prewitt) 
 
 
 
II) Explicação: 
 
 
Para este exercício foram utilizadas mascaras 3x3, da esquerda para direita são 
apresentados nas imagens, a imagem original, máscara pelo operador de Roberts, mascara pelo 
operador de Sobel, e por fim, operador de Prewitt. 
A detecção de borda é utilizada para, justamente identificar bordas que são fronteira entre 
duas regiões, no qual os níveis de cinza são ligeiramente diferentes então indicando uma 
descontinuidade da luminosidade nas imagens. De mesma forma a borda pode definir uma 
descontinuidade de outra característica da imagem, por exemplo: cor, textura. 
Nas imagens abaixo podem ser identificados traços do avião e da ponte bem como da 
montanha no caso do avião, e do riacho no caso da ponte, são as fronteiras entre 
luminosidade ou dos tons de cinza. 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 8 Prof. Charles Way Hun Fung, MSc 
III) Apresentação das Imagens Resultantes: 
 
 
 
Figura 6: Máscara de detecção de bordas 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 9 Prof. Charles Way Hun Fung, MSc 
7. Procure na literatura por outro filtro de borda que não foi apresentado no material da 
disciplina, apresente sua máscara e explique seu funcionamento, características e a 
apresente a bibliografia da qual foi retirado este método. 
 
I) Apresentação do Código: 
--> nestor_aviao = imread('jetplane.tif'); 
--> nestor_ponte = imread('walkbridge.tif'); 
--> aviao_real = double(nestor_aviao); 
--> ponte_real = double(nestor_ponte); 
--> mascara_laplaciano = [0,-1,0;-1,4,-1;0,-1,0]; 
--> mascara_laplaciano2 = [-1,-4,-1;-4,20,-4;-1,-4,-1]; 
--> aviao_laplaciano = conv2(mascara_laplaciano,aviao_real); 
--> aviao_laplaciano2 = conv2(mascara_laplaciano2,aviao_real); 
--> ponte_laplaciano = conv2(mascara_laplaciano,ponte_real); 
--> ponte_laplaciano2 = conv2(mascara_laplaciano2,ponte_real); 
 
II) Apresentação das Imagens Resultantes: 
 
 
 
Figura 7: Filtro laplaciano. 
III) Explicação: 
Para este exercício foram aplicadas as máscaras laplaciano, com dois valores, abaixo das 
imagens podem ser observados os valores utilizados. 
A exigência para a definição do Laplaciano é que o coeficiente associado ao pixel central 
seja positivo e que os outros pixels externos sejam negativos. A resposta do operador Laplaciano 
é nula quando o ponto central e seus vizinhos tiverem os mesmos valores de intensidade, ou 
seja, pertencerem a uma região homogênea da imagem. 
Em certas situações, é desejável dar maior peso aos pontos vizinhos mais próximos do 
pixel central, isso foi feito nas imagens da terceira coluna. Com utilização desta mascara 
podemos ver uma detecção mais discreta do que no exercício anterior, porém com resultado 
semelhante. 
 
 
 
Atividade Prática de Processamento de Imagens 10 Prof. Charles Way Hun Fung, MSc 
8. Separe as componentes de cor R, G e B da imagem baboo_colorido.tif. Explique o que 
significa regiões mais claras nestas imagens. 
 
I) Apresentação do Código: 
 
--> nestor_im = imread('baboo_colorido.tif'); 
--> size(nestor_im) 
--> red = nestor_im(:,:,1); 
--> green = nestor_im(:,:,2); 
--> blue = nestor_im(:,:,3); 
--> subplot(221) 
--> imshow(nestor_im); 
--> subplot(222) 
--> imshow(red); 
--> subplot(223) 
--> imshow(green); 
--> subplot(224) 
--> imshow(blue); 
 
II) Apresentação das Imagens Resultantes: 
 
 
Figura 8: Separação de R, G, B 
III) Explicação: 
 
Como podemos ver na 
imagem ao lado, ao separar as 
coordenadas R, G, B, 
percebemos que a imagem ficou 
em níveis de cinza e a 
componente separada, torna-se 
branca. A exemplo podemos 
pegar a segunda imagem, onde 
o nariz que era vermelho, 
separando essa componente, 
temos a imagem em níveis de 
cinza e o nariz branco. 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 11 Prof. Charles Way Hun Fung, MSc 
9. Converta a imagem lena_colorida.tif para o modelo CMY, separe suas componentes (C, 
M e Y). 
 
I) Apresentação do Código: 
 
--> nestor_im = imread('lena_colorida.tif'); 
--> CMY = imcomplement(nestor_im); 
--> C = CMY(:,:,1); 
--> M = CMY(:,:,2); 
--> Y = CMY(:,:,3); 
--> subplot(221) 
--> imshow(CMY); 
--> subplot(222) 
--> imshow(C); 
--> subplot(223) 
--> imshow(M); 
--> subplot(224) 
--> imshow(Y); 
 
II) Apresentação das Imagens Resultantes: 
 
 
Figura 1: Conversão para CMY e separação das componentes C, 
M, Y. 
 
III) Explicação: 
 
 
Nas imagens ao lado, 
da esquerda para direita, a 
imagem convertida para 
CMY, componente Ciano, 
componente Magenta, 
componente Amarelo 
respectivamente. 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 12 Prof. Charles Way Hun Fung, MSc 
10. Converta a imagem jupiter.tif para HSI, usando o comando rgb2hsv. Veja cada uma 
das componentes deste modelo: 1: Intensidade, 2: Saturação, 3: Matiz. O que cada 
uma destas componentes significa e qual o benefício de utilizar este modelo de 
cor? 
 
I) Apresentação do Código: 
 
--> nestor_jupiter = imread('jupiter.tif'); 
--> HSI = rgb2hsv(nestor_jupiter); 
--> H = HSI(:,:,1); 
--> S = HSI(:,:,2); 
--> I = HSI(:,:,3); 
--> imshow(nestor_jupiter) 
--> subplot(221) 
--> imshow(HSI) 
--> subplot(222) 
--> imshow(H) 
--> subplot(223) 
--> imshow(S) 
--> subplot(224) 
--> imshow(I) 
 
 
II) Apresentação das Imagens Resultantes: 
 
 
Figura10: Conversão de RGB para HSI, e separação dos 
componentes. 
 
III) Explicação: 
 
Ao lado, podemos ver, da 
esquerda para direita, a imagem 
transformada para HSI, depois ‘H’ 
(Matiz) que apresenta todas as cores 
do espectro, ‘S’ (saturação) ou pureza 
que apresenta o tom de cinza na 
imagem, e por último ‘I’ (intensidade), 
que pode ser compreendido como o 
brilho da cor. 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 13 Prof. Charles Way Hun Fung, MSc 
11. Separe inteiramente a componente de cor vermelha da imagem baboo_colorido.tif. 
Qual a diferença entre este processamento e aquele realizado no exercício 8? 
 
I) Apresentação do Código: 
 
--> nestor_colorido = imread('baboo_colorido.tif'); 
--> red = nestor_colorido; 
--> red(:,:,[23])=0; 
--> subplot(211); 
--> imshow(nestor_colorido) 
--> subplot(212); 
--> imshow(red) 
 
 
II) Apresentação das Imagens Resultantes: 
 
 
 
Figura 11: (COLOCAR LEGENDA AQUI) 
 
III) Explicação: 
 
 
Neste exercício aplicamos o filtro para a 
cor vermelha, onde abaixo da imagem original 
vemos como ficou a imagem de componente 
vermelha. Diferente do exercício anterior que 
tínhamos separado as coordenadas e temos a 
imagem em tons de cinza, aqui separamos a 
componente vermelha, que mostra a 
pigmentação real da imagem. 
 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 14 Prof. Charles Way Hun Fung, MSc 
12. Realize três mudanças de escala na imagem baboo.tif, usando imresize, com as 
imagens: 2, 0.5 e 0.1. Mostre as imagens resultantes, utilizando o comando size 
explique a diferença entre estas imagens. 
 
I) Apresentação do Código: 
 
--> nestor_im = imread('Baboo.tif'); 
--> baboo_2 = imresize(nestor_im,2); 
--> baboo_05 = imresize(nestor_im,0.5); 
--> baboo_01 = imresize(nestor_im, 0.1); 
--> size(nestor_im) 
 ans = 
 512. 512. 
--> size(baboo_2) 
 ans = 
 1024. 1024. 
--> size(baboo_05) 
 ans = 
 256. 256. 
--> size(baboo_01) 
 ans = 
 51. 51. 
--> subplot(221) 
--> imshow(nestor_im) 
--> subplot(222) 
--> imshow(baboo_2)--> subplot(223) 
--> imshow(baboo_05) 
--> subplot(224) 
--> imshow(baboo_01) 
 
II) Apresentação das Imagens Resultantes: 
 
Figura 12: Imagens original, escala de 2, escala de 0.5, escala de 0.1 
respectivamente 
III) Explicação: 
 
 
Como podemos 
verificar no código 
quando utilizamos a 
função ‘size’ a 
resposta é o tamanho da 
imagem. 
Com o ‘Imersize’ 
podemos modificar a 
escala da imagem, 
desta forma utilizando a 
escala 2 temos uma 
imagem com o dobro do 
tamanho da original, 
com a escala 0.5 temos 
a imagem com a metade 
do tamanho da imagem 
original, para a escala 
0.1 temos 10% do 
 
 
 
Atividade Prática de Processamento de Imagens 15 Prof. Charles Way Hun Fung, MSc 
tamanho da imagem 
original. 
13. Reduza pela metade a escala da imagem pimentas.tif (fator de escala = 0.5) pelo 
menos três vezes. A qualidade da imagem continua a mesma? 
 
I) Apresentação do Código: 
--> nestor_im = imread('Pimentas.tif'); 
--> pimentas05 = imresize(nestor_im,0.5); 
--> pimenta025 = imersize(pimentas05,0.5); 
--> pimentas025 = imresize(pimentas05,0.5); 
--> pimentas0125 = imresize(pimentas025,0.5); 
--> size(nestor_im) 
 ans = 
 512. 512. 
--> size(pimentas05) 
 ans = 
 256. 256. 
--> size(pimentas025) 
 ans = 
 128. 128. 
--> size(pimentas0125) 
 ans = 
 64. 64. 
--> subplot(221) 
--> imshow(nestor_im) 
--> subplot(222) 
--> imshow(pimentas05) 
--> subplot(223) 
--> imshow(pimentas025) 
--> subplot(224) 
--> imshow(pimentas0125) 
 
II) Apresentação das Imagens Resultantes: 
 
Figura 13: Imagens com diminuição na escala 
III) Explicação: 
 
 
A diminuição da 
imagem de maneira 
escalar faz com que se 
diminua a quantidade 
de pixels da imagem e 
como resultado 
podemos ver uma 
diminuição de 
resolução, ou seja, 
ocorre o 
comprometimento da 
qualidade da imagem 
com a diminuição. 
 
 
 
Atividade Prática de Processamento de Imagens 16 Prof. Charles Way Hun Fung, MSc 
14. Use a imagem pimentas.tif para usar a função imrotate, a rotação em sentido 
horário acontece com valores positivos ou negativos, mostre exemplos desta 
rotação (Pelo menos 4 ângulos diferentes). 
 
I) Apresentação do Código: 
 
--> nestor_im = imread('Pimentas.tif'); 
--> pimenta45 = imrotate(nestor_im, 45); 
--> pimenta90 = imrotate(nestor_im, 90); 
--> pimenta120 = imrotate(nestor_im, 120); 
--> pimenta270 = imrotate(nestor_im, 270); 
--> subplot(221) 
--> imshow(pimenta45); 
--> subplot(222) 
--> imshow(pimenta90); 
--> subplot(223) 
--> imshow(pimenta120); 
--> subplot(224) 
--> imshow(pimenta270); 
 
II) Apresentação das Imagens Resultantes: 
 
 
 
Figura 14: Rotação das imagens 
III) Explicação: 
 
A rotação dessa imagem 
apresentada a 45 graus (primeira 
imagem) a imagem rotacionou no sentido 
anti-horário. A rotação da imagem sempre 
se dá no sentido anti-horário sendo que a 
base de rotação é a lateral direita. 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 17 Prof. Charles Way Hun Fung, MSc 
15. Aplique as duas funções de corte em uma imagem a sua escolha. A imagem 
resultante da função imcrop será chamada de imagemA e a imagem resultante da 
função imcropm será chamada de imagemB. 
 
I) Apresentação do Código: 
 
--> nestor_im = imread('jetplane.tif'); 
--> imagem_A = imcrop(nestor_im, [20,100, 200, 300]); 
--> imagem_B= imcropm(nestor_im) 
--> subplot(131) 
--> imshow(nestor_im) 
--> subplot(132) 
--> imshow(imagem_A) 
--> subplot(133) 
--> imshow(imagem_B) 
 
 
II) Apresentação das Imagens Resultantes: 
 
 
 
 
Figura 15: Imagens resultantes dos cortes, Original, Imagem A e imagem B respectivamente. 
 
III) Explicação: 
 
Para o corte com ‘imcrop’ usa-se as coordenadas, primeiramente o x de início e depois o 
x de final, posteriormente são o y de início e o y de final. 
Para o ‘imcropm’ a imagem é plotada e então pode-se selecionar a parte que se deseja 
cortar. 
 
 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 18 Prof. Charles Way Hun Fung, MSc 
16. Realize um espelhamento horizontal na imagemA e um espelhamento vertical na 
imagemB. 
 
I) Apresentação do Código: 
 
--> nestor_im = imread('jetplane.tif'); 
--> imagem_A = imcrop(nestor_im, [20,100, 200, 300]); 
--> imagem_B= imcropm(nestor_im) 
--> esp_hori = imagem_A(:,$:-1:1); 
--> esp_vert = imagem_B($:-1:1,:); 
--> subplot(221) 
--> imshow(imagem_A) 
--> subplot(222) 
--> imshow(esp_hori) 
--> subplot(223) 
--> imshow(imagem_B) 
--> subplot(224) 
--> imshow(esp_vert) 
 
II) Apresentação das Imagens Resultantes: 
 
 
Figura 16: Espelhamento Horizontal e vertical 
 
III) Explicação: 
 
 
 
 
Como podemos perceber, a 
primeira linha temos a ‘imagem A’ 
seguida do seu espelhamento 
horizontal. Na segunda linha temos a 
‘imagem B’ seguida do seu 
espelhamento vertical. 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 19 Prof. Charles Way Hun Fung, MSc 
17. A imagem retangulo.tif deve resultar no mais próximo possível de um retângulo 
branco sem nenhum artefato dentro ou fora do mesmo. Utilize apenas operações 
para resolver este problema. 
 
I) Apresentação do Código: 
 
--> nestor = imread('retangulo.tif'); 
--> nestor(4:7,4:7) = 1; 
--> ES = imcreatese('rect', 50,50); 
--> corosao = imerode(nestor, ES); 
--> imshow(corosao) 
--> ES = imcreatese('rect', 80,80); 
--> dilatacao = imdilate(corosao,ES); 
--> imshow(dilatacao) 
--> subplot(121) 
--> imshow(corosao) 
--> subplot(122) 
--> imshow(dilatacao) 
 
II) Apresentação das Imagens Resultantes: 
 
 
Figura 18: Imagens resultantes 
 
III) Explicação: 
 
Primeiramente foi utilizado um 
elemento estruturante de 50 x 50 para 
fazer a erosão da imagem, o que 
eliminou todos os pontos externos do 
quadrado branco. Posteriormente, o 
elemento estruturante foi modificado 
para 80 x 80 e então executado uma 
operação de dilatação, o que 
eliminou os pontos pretos dentro do 
quadrado branco. 
 Como resultado podemos ver 
as imagens ao lado, a primeira 
imagem apresenta a erosão e a 
segunda apresenta erosão e 
dilatação. 
 
 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 20 Prof. Charles Way Hun Fung, MSc 
18. Na imagem texto.tif deve-se obter o texto nítido. Para isto, utilize operações de 
dilatação e erosão. O critério para verificar a nitidez do texto é quando as falhas nas 
letras deixarem de existir. 
 
I) Apresentação do Código: 
 
--> nestor = imread('texto.tif'); 
--> nestor(4:7,4:7) = 1; 
--> ES = imcreatese('rect',3,3); 
--> dilatacao = imdilate(nestor,ES); 
--> corrosao = imerode(dilatacao, ES); 
--> imshow(corrosao) 
 
II) Apresentação das Imagens Resultantes: 
 
 
 
Figura 2: Imagem resultante 
 
III) Explicação: 
 
 
Para essa tarefa primeiramente 
foi feita uma dilatação para que as 
falhas das letras fossem fechadas, 
então tivemos por resultado letras 
muito grossas, aplicando a erosão, 
conseguimos diminuir a espessura da 
letra e tendo como resultado a imagem 
ao lado. 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 21 Prof. Charles Way Hun Fung, MSc 
19. Encontre as bordas da imagem U.tif utilizando apenas operações morfológicas. 
 
I) Apresentação do Código: 
 
--> nestor = imread('U.tif'); 
--> ES = imcreatese ('rect', 5,5); 
--> borda = imdilate(nestor,ES); 
--> resposta = borda - nestor; 
--> imshow(resposta); 
 
II) Apresentação das Imagens Resultantes: 
 
 
 
Figura 3: Resultado de encontrar bordas 
 
III) Explicação: 
 
 
 
 
Ao lado a imagem das bordas 
encontradas para a imagem ‘U.tif’ 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 22 Prof. Charles Way Hun Fung, MSc 
20. A imagem digital.tif é de uma impressão digital com ruído, realize operações 
morfológicas para retirar o ruído e realçar os traços da digital nesta imagem. 
 
I) Apresentação do Código: 
 
--> nestor = imread('digital.tif'); 
--> ES = imcreatese('rect',3,3); 
--> abertura = imopen(nestor, ES); 
--> imshow(abertura); 
 
II) Apresentação das Imagens Resultantes: 
 
 
Figura 20: Digital sem ruído 
 
III) Explicação:Para resolver este problema, foi 
utilizado a operação de abertura, que 
equivale a fazer o processamento de 
erosão e depois a dilatação.

Continue navegando