Buscar

corrigido-Caderno_de_resolucao - EAD - RODRIGO

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 22 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 22 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 22 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 
 
 
2020 
CADERNO DE RESOLUÇÃO DA ATIVIDADE PRÁTICA 
RODRIGO RAMOS PEREIRA 1329431 
 
 
 
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: 
 
rodrigo_img1 = imread('cameraman.tif'); 
[qtd,nvs] = imhist(rodrigo_img1); 
subplot (211) 
imshow(rodrigo_img1) 
subplot (212) 
plot2d3(qtd,nvs) 
 
II) Apresentação das Imagens 
Resultantes: 
 
 
III) Explicação: 
 
Ao lado temos a apresentação da imagem do 
cameraman escolhida para realizar a análise 
do histograma, este que vem logo abaixo dela. 
O histograma nos mostra que a imagem é 
bem equilibrada em relação aos níveis de 
cinza. As áreas onde existe uma concentração 
maior de traços escuros nos indica uma 
grande concentração de pixels claros na 
imagem como um todo, como podemos 
observar. Os espaços mais claros indica a 
parte escura da imagem, como o sobretudo do 
cameraman e o tripé da câmera. 
 
 
 
 
 
 
 
 
Figura 1: Cameraman e seu histograma 
 
 
 
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. 
 
I) Apresentação do Código: 
 
rodrigo_img1 = imread('cameraman.tif'); 
rodrigo_img2 = imread('house.tif'); 
rodrigo_img3 = imread('lena_color_256.tif'); 
rodrigo_img3_gray = rgb2gray(rodrigo_img3); 
[qtd1,nvs1] = imhist(rodrigo_img1); 
[qtd2,nvs2] = imhist(rodrigo_img2); 
[qtd3,nvs3] = imhist(rodrigo_img3_gray); 
subplot(321) 
imshow(rodrigo_img1) 
subplot(322) 
plot2d3(qtd1,nvs1) 
subplot(323) 
imshow(rodrigo_img2) 
subplot(324) 
plot2d3(qtd2,nvs2) 
subplot(325) 
imshow(rodrigo_img3_gray) 
subplot(326) 
plot2d3(qtd3,nvs3) 
 
 
II) Apresentação das Imagens Resultantes: III) Explicação: 
 
Assim como no exercício anterior, para 
realizar a análise das imagens no Scilab, 
inserimos as respectivas variáveis, com 
uma atenção especial para a imagem da 
terceira linha denominada 
“lena_color_256.tif”. Para realizar o 
histograma dessa imagem foi necessário 
converte-la para níveis de cinzas e em 
seguida realizar os comandos do 
histograma. No histograma do 
cameraman vemos uma concentração de 
traços pretos no início do gráfico, 
mostrando a grande concentração de 
pixels de níveis mais claros ao fundo do 
cameraman. Na imagem 2 temos a casa 
e uma grande concentração de pixels 
claros apresentado no grande traço 
isolado ao final do gráfico. Na imagem 3 
notamos um espalhamento no gráfico dos 
níveis de cinza, o que é fácil de notar na 
imagem. 
Figura 2: representação das três imagens com 
seus histogramas ao lado de cada uma. 
 
 
 
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: 
 
rodrigo_img1 = imread('cameraman.tif'); 
rodrigo_img1_eq = imhistequal(rodrigo_img1); 
[qtd1,nvs1] = imhist(rodrigo_img1); 
[qtd1eq,nvs1eq] = imhist(rodrigo_img1_eq); 
subplot(221) 
imshow(rodrigo_img1) 
subplot(222) 
plot2d3(qtd1,nvs1) 
subplot(223) 
imshow(rodrigo_img1_eq) 
subplot(224) 
plot2d3(qtd1eq,nvs1eq) 
 
 
II) Apresentação das Imagens Resultantes: III) Explicação: 
 
Após realizar a equalização dos 
histograma notamos a redistribuir dos 
pixels nos níveis de cinza, observando 
os gráficos, de maneira que diminui o 
contraste da imagem e deixa-a mais 
uniforme. Nota-se até detalhes que 
não eram visto na imagem original 
como os bolsos do homem. 
 
 
Figura 3: Histogramas sem equalização e com 
equalização 
 
 
 
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: 
rodrigo_img1 = imread('jetplane.tif'); 
rodrigo_img2 = imread('walkbridge.tif'); 
rodrigo_img1_real = double(rodrigo_img1); 
rodrigo_img2_real = double(rodrigo_img2); 
mascara = [1,1,1;1,-8,1;1,1,1] 
 mascara = 
 
 1. 1. 1. 
 1. -8. 1. 
 1. 1. 1. 
 
result_img1=conv2(rodrigo_img1_real,mascara); 
result_img2=conv2(rodrigo_img2_real,mascara); 
subplot(221) 
imshow(rodrigo_img1) 
subplot(222) 
imshow(result_img1) 
subplot(223) 
imshow(rodrigo_img2) 
subplot(224) 
imshow(result_img2) 
 
II) Apresentação das Imagens Resultantes: 
 
III) Explicação: 
 
Para essa filtragem foi 
utilizada uma matriz 3x3 conhecida 
como mascara laplaciana, a qual 
nos permite a detecção de pontos 
isolados. 
Nos resultados vimos que 
ambas as imagens possuem 
muitos pontos claros com pouca 
variedade de cinza. Já em suas 
imagens resultantes da 
convolução notamos que os 
contornos do avião e da ponte 
estão se destacando mais, por 
conter maior número de pontos 
brancos em torno de ambos. 
 
 
 
Figura 4: A convolução para a detecção de pontos 
 
 
 
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: 
 
rodrigo_img1 = imread('jetplane.tif'); 
rodrigo_img2 = imread('walkbridge.tif'); 
rodrigo_img1_real = double(rodrigo_img1); 
rodrigo_img2_real = double(rodrigo_img2); 
mask_hor=[-1 -1 -1 ; 2 2 2 ; -1 -1 -1]; 
mask_45=[2 -1 -1 ; -1 2 -1 ; -1 -1 2]; 
mask_ver=[-1 2 -1 ; -1 2 -1 ; -1 2 -1]; 
mask_45neg=[-1 -1 2 ; -1 2 -1 ; 2 -1 -1]; 
res_hor_img1=conv2(mask_hor,rodrigo_img1_real); 
res_45_img1=conv2(mask_45,rodrigo_img1_real); 
res_ver_img1=conv2(mask_ver,rodrigo_img1_real); 
res_45neg_img1=conv2(mask_45neg,rodrigo_img1_real); 
res_hor_img2=conv2(mask_hor,rodrigo_img2_real); 
res_45_img2=conv2(mask_45,rodrigo_img2_real); 
res_ver_img2=conv2(mask_ver,rodrigo_img2_real); 
res_45neg_img2=conv2(mask_45neg,rodrigo_img2_real); 
subplot(241) 
imshow(res_hor_img1) 
subplot(242) 
imshow(res_45_img1) 
subplot(243) 
imshow(res_ver_img1) 
subplot(244) 
imshow(res_45neg_img1) 
subplot(245) 
imshow(res_hor_img2) 
subplot(246) 
imshow(res_45_img2) 
subplot(247) 
imshow(res_ver_img2) 
subplot(248) 
imshow(res_45neg_img2) 
 
 
II) Explicação: 
 
 Nas imagens abaixo vemos o resultado da aplicação dos filtros para a detecção de linhas. 
Na primeira linha trazemos o trabalho feito na imagem do avião. Podemos perceber na primeira 
imagem leves linhas horizontais, pois a imagem contém muitos pontos brancos. Nas outras três 
imagens referente ao avião, notamos apenas na última imagem da primeira linha leves traços da 
calda do avião, pois esta tem linhas em 45º negativos. 
 Na segunda linha temos os mesmos filtros aplicados a imagem da ponte. Nota-se que apenas 
a filtragem horizontal traz alguma lembrança do que é a imagem da ponte, devido os traços 
horizontais que existem nela. Já as outras imagens é difícil de distinguir qualquer traço. 
 
 
 
 
 
 
 
Atividade Prática de Processamento de Imagens 6 Prof. Charles Way Hun Fung, MSc 
III) Apresentação das Imagens Resultantes: 
 
 
 
Figura 5:Detecção de linhas 
 
 
 
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 resultadoe explique o que aconteceu com a imagem. 
 
I) Apresentação das Imagens Resultantes: 
 
II) Apresentação do Código: 
rodrigo_img1 = imread('jetplane.tif'); 
rodrigo_img2 = imread('walkbridge.tif'); 
 rodrigo_img1_real = double(rodrigo_img1); 
 rodrigo_img2_real = double(rodrigo_img2); 
 mask_roberts1=[-1 0 ; 0 1]; 
 mask_prewitt2=[-1 0 -1 ; -1 0 1 ; -1 0 1]; 
 mask_sobel1=[-1 -2 -1 ; 0 0 0 ; 1 2 1]; 
res_roberts1_img1=conv2(mask_roberts1,rodrigo_img1_real); 
res_prewitt2_img1=conv2(mask_prewitt2,rodrigo_img1_real); 
res_sobel1_img1=conv2(mask_sobel1,rodrigo_img1_real); 
res_roberts1_img2=conv2(mask_roberts1,rodrigo_img2_real); 
res_prewitt2_img2=conv2(mask_prewitt2,rodrigo_img2_real); 
res_sobel1_img2=conv2(mask_sobel1,rodrigo_img2_real); 
subplot(241) 
imshow(rodrigo_img1) 
subplot(242) 
imshow(res_roberts1_img1) 
subplot(243) 
imshow(res_prewitt2_img1) 
subplot(244) 
imshow(res_sobel1_img1) 
subplot(245) 
imshow(rodrigo_img2) 
subplot(246) 
imshow(res_roberts1_img2) 
subplot(247) 
imshow(res_prewitt2_img2) 
subplot(248) 
imshow(res_sobel1_img2) 
III) Explicação: 
Como vimos, os operadores 
de Roberts são baseados na 
implementação de diferenças 
nas diagonais. As máscaras 
2×2 são simples, e não são tão 
úteis para cálculos de direção 
da borda. Por isso conseguimos 
detectar poucas linhas, tanto na 
imagem do avião, onde vemos 
no primeiro filtro as linhas que 
são as bordas da neve na 
montanha, e na imagem da 
ponte vemos as linhas que 
indicam as laterais da ponte. As 
máscaras 3x3 consideram a 
natureza dos dados nas laterais 
opostas ao ponto central e, por 
isso, carregam mais 
informações em relação a 
direção de uma borda. O filtro 
de Prewitt aplicado no exercício 
realça os pontos das linhas 
horizontais das imagens. Como 
as máscaras de Sobel 
apresentarem melhor 
suavização de ruído, faz com 
que sejam preferíveis, pois a 
supressão do ruído é algo 
importante quando lidamos com 
derivadas. Como todos 
coeficientes somam zero, temos 
a resposta nula nos locais de 
intensidade constante. 
Figura 6: aplicação dos filtros Roberts 1, Prewitt 2 e Sobel1 em cada imagem. 
 
 
 
Atividade Prática de Processamento de Imagens 8 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: 
rodrigo_img1 = imread('jetplane.tif'); 
rodrigo_img2 = imread('walkbridge.tif'); 
 rodrigo_img1_real = double(rodrigo_img1); 
 rodrigo_img2_real = double(rodrigo_img2); 
 mask_laplaciano=[0 1 0 ; 1 -4 1 ; 0 1 0]; 
 res_laplaciano_img1=conv2(mask_laplaciano,rodrigo_img1_real); 
 res_laplaciano_img2=conv2(mask_laplaciano,rodrigo_img2_real); 
subplot(221) 
imshow(rodrigo_img1) 
subplot(222) 
imshow(res_laplaciano_img1) 
subplot(223) 
imshow(rodrigo_img2) 
subplot(224) 
imshow(res_laplaciano_img2) 
 
II) Apresentação das Imagens Resultantes: 
 
III) Explicação: 
 
Aplicamos uma 
máscara Laplaciano nas 
imagens. Ele é um 
operador isotrópico, ou 
seja, não diferencia 
direções. Como os 
demais ele é fácil de 
implementar pois basta 
uma máscara. Porem ele 
não dá informação sobre 
a direção da borda. E 
como vimos em algumas 
literaturas ele é mais 
sensível ao ruído pois 
deriva duas vezes. 
 
 
 
Figura 7: Aplicação do filtro Laplaciano 
 
 
 
Atividade Prática de Processamento de Imagens 9 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: 
 
rodrigo_img = imread('baboo_colorido.tif'); 
 size (rodrigo_img); 
 red = rodrigo_img(:,:,1); 
 green = rodrigo_img(:,:,2); 
 blue = rodrigo_img(:,:,3); 
subplot(221) 
imshow(rodrigo_img) 
subplot(222) 
imshow(red) 
subplot(223) 
imshow(green) 
subplot(224) 
imshow(blue) 
II) Apresentação das Imagens Resultantes: 
 
 
 
III) Explicação: 
 
Nas imagens que temos os 
destaques nas partes mais 
claras como o nariz e a região 
azul em torno do nariz, mostra 
que o Scilab, ao separar os 
pixels, levou dois deles a níveis 
de cinza e o pigmento escolhido 
foi levado a 1, como por 
exemplo na primeira imagem 
preto e branca ao lado da 
imagem colorida, referente a cor 
vermelha (red), vemos onde 
existia a cor vermelha toda 
branca. 
 
 
 
Figura 8: Separação RGB 
 
 
 
Atividade Prática de Processamento de Imagens 10 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: 
 
rodrigo_img = imread('lena_colorida.tif'); 
 size (rodrigo_img); 
 CMY=imcomplement(rodrigo_img); 
 cia = CMY (:,:,1); 
 mag = CMY (:,:,2); 
 yel = CMY (:,:,3); 
subplot(221) 
imshow(CMY) 
subplot(222) 
imshow(cia) 
subplot(223) 
imshow(mag) 
subplot(224) 
imshow(yel) 
II) Apresentação das Imagens Resultantes: 
 
III) Explicação: 
 
 
Vemos claramente a 
separação dos pigmentos 
ciano, que remete ao azul e o 
amarelo. Já não notamos 
quase a pigmentação 
magenta, por não conter tantos 
pontos deste na imagem. 
 
 
Figura 9: imagem CMY e suas componentes separadas 
 
 
 
Atividade Prática de Processamento de Imagens 11 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: 
rodrigo_img = imread('jupiter.tif'); 
 size (rodrigo_img); 
 HSI=rgb2hsv(rodrigo_img); 
 hue = HSI(:,:,1); 
 sat = HSI(:,:,2); 
 inte = HSI(:,:,3); 
subplot(221) 
imshow(HSI) 
subplot(222) 
imshow(hue) 
subplot(223) 
imshow(sat) 
subplot(224) 
imshow(inte) 
II) Apresentação das Imagens Resultantes: 
 
 
III) Explicação: 
 
O sistema de cores HSV, ou 
HSI, define o espaço de cor 
utilizando seus três 
parâmetros, a começar por 
matiz (tonalidade) como 
vemos na segunda imagem 
ao lado. Este verifica o tipo de 
cor, tendo todas as 
tonalidades do espectro, 
desde o vermelho até 
o violeta junto com 
o magenta. 
A saturação vemos na 
primeira imagem da segunda 
linha, conhecida como 
"pureza", vemos que quanto 
menor esse valor, maior será 
o tom de cinza da imagem, ou 
seja, quanto maior seu valor, 
mais "pura" é a imagem. 
Já a intensidade define o valor 
do brilho da cor. 
 
 
Figura 10: Modelo HSI 
 
 
 
Atividade Prática de Processamento de Imagens 12 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: 
 
rodrigo_img = imread('baboo_colorido.tif'); 
 size (rodrigo_img); 
 rodrigo_img_R = rodrigo_img; 
 rodrigo_img_R(:,:,[2 3])=0; 
subplot(211) 
imshow(rodrigo_img) 
subplot(212) 
imshow(rodrigo_img_R) 
 
II) Apresentação das Imagens Resultantes: III) Explicação: 
 
No exercício 8 temos a representação da 
imagem separada em tonalidades de cinza. 
Aqui temos a representação do filtro 
vermelho com a real pigmentação, em 
vermelho, na imagem. Nota-se que as 
regiões em vermelho na imagem original se 
destaca com tons claros na imagem com 
filtro. 
 
 
Figura 11: Separação da componente 
vermelha 
 
 
 
Atividade Prática de Processamento de Imagens 13 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: 
rodrigo = imread('baboo.tif'); 
size(rodrigo); 
rodrigores_2 = imresize(rodrigo,2); 
rodrigores_05 = imresize(rodrigo,0.5); 
plot2d3(221) 
imshow(rodrigores_2) 
plot2d3(222)imshow(rodrigores_05) 
II) Apresentação das Imagens 
Resultantes: 
 
 
 
 
 
 
 
 
 
 
 
 
III) Explicação: 
 
Como mencionado nas intruções de 
execução da atividade pratica, a função 
“imresize” define a escala da imagem. Na 
primeira figura notamos as diferenças de escala 
da imagem aumentada 2 vezes e a imagem 
reduzida meia vez. 
Nas planilhas abaixo das imagens temos a 
escala das figuras, a original tendo um tamanho 
de 512x512, a segunda, aumentada 2x sendo 
1024x1024 e a terceira com redução da metade 
com 256x256. 
A redução 0,1 não foi possível realizar devido 
a erro de execução do Scilab. 
 
 
 
 
Figura 12: imagens original, aumentada e 
reduzida 
 
 
 
Atividade Prática de Processamento de Imagens 14 Prof. Charles Way Hun Fung, MSc 
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: 
rodrigo = imread('pimentas.tif'); 
size(rodrigo); 
rodrigores105 = imresize(rodrigo,0.5); 
rodrigores205 = imresize(rodrigores105,0.5); 
rodrigores305 = imresize(rodrigores205,0.5); 
subplot(221) 
imshow(rodrigo) 
subplot(222) 
imshow(rodrigores105) 
subplot(223) 
imshow(rodrigores205) 
subplot(224) 
imshow(rodrigores305) 
II) Apresentação das Imagens Resultantes: 
 
III) Explicação: 
 
Como existe a redução da escala pela 
metade de forma exponencial negativa, 
notamos nas imagens abaixo que existe a 
redução da qualidade da imagem. 
 
 
Figura 13: Redução da escala em 0,5 em 3 
vezes 
 
 
 
Atividade Prática de Processamento de Imagens 15 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: 
rodrigo = imread('pimentas.tif'); 
rodrigo45 = imrotate(rodrigo,45); 
rodrigo60 = imrotate(rodrigo,60); 
rodrigo120 = imrotate(rodrigo,120); 
rodrigo270 = imrotate(rodrigo,270); 
subplot(221) 
imshow(rodrigo45) 
subplot(222) 
imshow(rodrigo60) 
subplot(223) 
imshow(rodrigo120) 
subplot(224) 
imshow(rodrigo270) 
 
II) Apresentação das Imagens Resultantes: 
 
 
III) Explicação: 
Rotações da imagem “pimenta.tif”.Nota-se que a 
base da rotação é a lateral direita da imagem. 
 
 
Figura 14: Rotação da imagem em 45º, 60º, 
120º e 270º 
 
 
 
Atividade Prática de Processamento de Imagens 16 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: 
rodrigo = imread('baboo.tif'); 
imagemA = imcrop(rodrigo,[10,20,200,300]); 
imagemB = imcropm(rodrigo); 
subplot(121) 
imshow(imagemA) 
subplot(122) 
imshow(imagemB) 
 
II) Apresentação das Imagens 
Resultantes: 
 
III) Explicação: 
 
Ampliação da imagem com “imcrop” 
apresentando as posições: 
x1=10 
y1=20 
x2=200 
y2=300 
 
E temos a ampliação da imagem com 
imcropm, focando nos olhos 
 
 
 
 
Figura 15: Imagens amplificadas com 
imcrop e imcropm 
 
 
 
Atividade Prática de Processamento de Imagens 17 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: 
imagemAHor = imagemA(:,$:-1:1); 
imagemBVer = imagemB($:-1:1,:); 
subplot(121) 
imshow(imagemAHor) 
subplot(122) 
imshow(imagemBVer) 
II) Apresentação das Imagens 
Resultantes: 
 
 
 
III) Explicação: 
 
Resultado do espelhamento das imagens 
resultadas do exercício 15. 
 
 
Figura 16: Espelhamentos horizontal e 
vertical 
 
 
 
Atividade Prática de Processamento de Imagens 18 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: 
 
rodrigo = imread('retangulo.tif'); 
rodrigo(4:7,4:7)=1; 
ES=imcreatese('rect',100,100); 
corroido=imerode(rodrigo,ES); 
dilatado=imdilate(corroido,ES); 
imshow(dilatado) 
 
II) Apresentação das Imagens Resultantes: 
 
 
 
III) Explicação: 
 
A imagem com o menor número de 
interferências internas e externas foi 
esta, usando um elemento estruturante 
100x100, corrosão e dilatação. 
 
 
Figura 17: limpeza de imagem utilizando 
erosão e dilatação 
 
 
 
Atividade Prática de Processamento de Imagens 19 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: 
 
rodrigo = imread('texto.tif'); 
rodrigo(4:7,4:7)=1; 
ES = imcreatese('rect',3,3); 
dilatado = imdilate(rodrigo,ES); 
corroido = imerode(dilatado,ES); 
imshow(corroido) 
II) Apresentação das Imagens Resultantes: 
 
 
 
III) Explicação: 
 
 
Vemos que é possível ler o texto 
perfeitamente. 
 
 
Figura 18: Melhoria do texto utilizando dilatação e 
erosão 
 
 
 
Atividade Prática de Processamento de Imagens 20 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: 
 
rodrigo = imread('U.tif'); 
ES = imcreatese('rect',5,5); 
dila = imdilate(rodrigo,ES); 
resp = dila - rodrigo; 
imshow(resp) 
II) Apresentação das Imagens Resultantes: III) Explicação: 
 
As bordas são facilmente identificadas, 
nota-se também que o código é de fácil 
escrita. 
 
 
Figura 19: Identificação de bordas com 
morfologia matemática 
 
 
 
Atividade Prática de Processamento de Imagens 21 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: 
 
rodrigo = imread('retangulo.tif'); 
rodrigo(4:7,4:7)=1; 
ES = imcreatese('rect',2,2); 
 eros = imerode(rodrigo,ES); 
 dil = imdilate(eros,ES); 
imshow(dil) 
 
II) Apresentação das Imagens 
Resultantes: 
 
 
III) Explicação: 
 
 
Após realizar testes com alguns elementos 
estruturantes, definiu-se um elemento 2x2 
pois este é o que apresenta o melhor resultado. 
 
 
Figura 20: Digital melhorada através de 
morfologia matemática

Outros materiais