Prévia do material em texto
Processamento de Imagens
2022
CADERNO DE RESOLUÇÃO DA ATIVIDADE PRÁTICA
GERALDO NARCISO PORTO - RU:2576484
Atividade Prática de Processamento de Imagens 1 Prof. Charles Way Hun Fung, MSc
Para resolver os exercícios 1, 2 e 3 faça a leitura das imagens house.tif, cameraman.tif e
lena_color_256.tif utilizando o comando imread. Em todos os exercícios mostre o código,
imagens resultantes e apresente explicações.
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:
--> im = geraldo_imread('house.tif')
--> imshow(im_geraldo)
--> [qtd,niveis]=imhist(im);
-->plot2d3(niveis,qtd)
II) Apresentação das Imagens Resultantes:
Figura 1- Histograma da imagem (house.tif)
III) Explicação:
A imagem representada em um
histograma, nada mais é do que um
gráfico apresentado em barras, que
apresenta a distribuição dos pixels
nos níveis de cinza. Cada barra pode
representar uma faixa de valores de
níveis de cinza, quanto maior o
número de barras, menor a faixa de
valores e maior a precisão do
histograma. Com a visualização do
histograma é possível verificar
algumas dessas características na
imagem, como contraste e brilho
médio.
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:
im_geraldo = imread('house.tif');
im2_geraldo = imread('cameraman.tif');
im3_geraldo = imread('lena_color_256.tif');
-->subplot(321)
--> imshow(im_geraldo)
--> subplot(322)
--> plot2d3(niveis,qtd)
--> subplot(323)
--> imshow(im2_geraldo)
--> subplot(324
--> plot2d3(niveis2,qtd2
--> subplot(325)
--> imshow(imgray
--> subplot(326)
--> plot2d3(niveis3,qtd3)
Atividade Prática de Processamento de Imagens 3 Prof. Charles Way Hun Fung, MSc
II) Apresentação das Imagens Resultantes:
Figura 2: Imagens com seus respectivos histogramas.
III) Explicação:
A diferença entre os
histogramas são a variação
de tons de cinza, isso
acontece de acordo com cada
imagem, se ela estiver mais
clara ou mais escura
Atividade Prática de Processamento de Imagens 4 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:
-> im2_geraldo = imread('cameraman.tif');
--> [qtd2,niveis2]=imhist(im2_geraldo);
--> subplot(221)
--> imshow(im2_geraldo)
--> subplot(222)
--> plot2d3(niveis2,qtd2)
-> imequ = imhistequal(im2_geraldo);
--> subplot(223)
--> imshow(imequ)
--> subplot(224)
-> [qtd4,niveis4]=imhist(imequ);
--> plot2d3(niveis4,qtd4)
Atividade Prática de Processamento de Imagens 5 Prof. Charles Way Hun Fung, MSc
II) Apresentação das Imagens Resultantes:
Figura 3: Imagem original e equalizada.
III) Explicação:
A equalização é utilizada para
fazer uma redistribuição dos pixel de
forma a uniformizar melhor a
distribuição em relação aos níveis
de cinza da imagem, e também
acontece uma suavização na
imagem, um tipo de brilho, assim
diminuindo os ruídos, para uma
melhor visualização da imagem.
Atividade Prática de Processamento de Imagens 6 Prof. Charles Way Hun Fung, MSc
Para resolver os exercícios 4, 5, 6 e 7 faça a leitura das imagens jetplane.tif e walkbridge.tif
usando o comando imread. Em todos os exercícios mostre o código, imagens resultantes e
apresente explicações.
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:
-> im1 = imread('jetplane.tif');
--> im2 = imread('walkbridge.tif');
--> mask = [1,1,1;1,-8,1;1,1,1]
--> im1 = double(im1);
--> im2 = double(im2);
--> res1 = conv2(im1,mask);
--> res2 = conv2(im2,mask);
--> ima1_geraldo = imread('jetplane.tif');
--> ima2_geraldo = imread('walkbridge.tif');
-> subplot(221);
--> ima1 = imread('jetplane.tif');
--> subplot(222);
--> imshow(res1);
--> subplot(223);
--> imshow(ima2_geraldo);
--> subplot(224);
--> imshow(res2);
Atividade Prática de Processamento de Imagens 7 Prof. Charles Way Hun Fung, MSc
II) Apresentação das Imagens Resultantes:
Figura 4: imagens originais e com filtro de pontos
isolados
III) Explicação:
A filtragem tem a função de dar
ênfase a uma determinada
característica da imagem
apresentada, nesse caso foi
destacados os pontos isolados.
Atividade Prática de Processamento de Imagens 8 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:
-> im1 = imread('jetplane.tif');
--> im2 = imread('walkbridge.tif');
--> 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];
--> ima1_geraldo = imread('jetplane.tif');
--> ima2_geraldo = imread('walkbridge.tif');
--> ima1_geraldo = double(ima1_geraldo);
--> ima2_geraldo = double(ima2_geraldo);
--> res1_hor = conv2(mask_hor,ima1_geraldo);
--> res1_45 = conv2(mask_45,ima1_geraldo);
--> res1_ver = conv2(mask_ver,ima1_geraldo);
--> res1_45neg = conv2(mask_45neg,ima1_geraldo);
--> res2_hor = conv2(mask_hor,ima2_geraldo);
--> res2_45 = conv2(mask_45,ima2_geraldo);
Atividade Prática de Processamento de Imagens 9 Prof. Charles Way Hun Fung, MSc
-> res2_ver = conv2(mask_ver,ima2_geraldo);
-> res2_45neg = conv2(mask_45neg,ima2_geraldo);
--> subplot(221);
--> imshow(res1_hor)
--> subplot(222)
--> imshow(res1_45)
--> subplot(223)
--> imshow(res1_ver)
--> subplot(224)
--> imshow(res1_45neg)
--> subplot(221);
--> imshow(res2_hor)
--> subplot (222)
--> imshow(res2_45)
--> subplot(223)
--> imshow(res2_ver)
--> subplot(224)
Atividade Prática de Processamento de Imagens 10 Prof. Charles Way Hun Fung, MSc
II) Apresentação das Imagens Resultantes:
Figura 5: plotagem da imagem(jetplane.tif),
(1)horizontal,(2)45º, (3)vertical,(4)-45º
III) Explicação:
Já essa matriz que usamos,
podemos observar um
melhor destaque na direção
das linhas da horizontal, 45º,
vertical, -45º.
Atividade Prática de Processamento de Imagens 11 Prof. Charles Way Hun Fung, MSc
Figura6: plotagem daimagem(walkbridge.tif)
(1)horizontal,(2)45º, (3)vertical,(4)-45º
Atividade Prática de Processamento de Imagens 12 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:
Inicio do código para imagem “jetplane.tif”
-> mask_Roberts1 = [-1 0; 0 1];
--> mask_Roberts2 = [0 -1; 1 0];
--> res_Roberts1 = conv2(mask_Roberts1,imagem1_geraldo);--> res_Roberts2 = conv2(mask_Roberts2,imagem1_geraldo);
--> imshow(res_Roberts1)
--> imshow(res_Roberts2)
--> subplot(121)
--> imshow(res_Roberts1)
--> subplot(122)
--> imshow(res_Roberts2)
-> mask_Prewitt1 = [-1 -1 -1; 0 0 0; 1 1 1];
--> mask_Prewitt2 = [-1 0 -1; -1 0 1; -1 0 1];
--> res_Prewitt1 = conv2(mask_Prewitt1,imagem1_geraldo);
--> res_Prewitt2 = conv2(mask_Prewitt2,imagem1_geraldo);
--> subplot(121)
--> imshow(res_Prewitt1)
--> subplot(122)
--> imshow(res_Prewitt2)
-> mask_Sobel1 = [-1 -2 -1; 0 0 0; 1 2 1];
--> mask_Sobel2 = [-1 0 1; -2 0 2; -1 0 1];
--> res_Sobel1 = conv2(mask_Sobel1,imagem1_geraldo);
--> res_Sobel2 = conv2(mask_Sobel2,imagem1_geraldo);
--> subplot(121)
Atividade Prática de Processamento de Imagens 13 Prof. Charles Way Hun Fung, MSc
--> imshow(res_Sobel1)
--> subplot(122)
--> imshow(res_Sobel2)
FIM DO CODIGO
Inicio do código para imagem (‘walkbridge.tif')
> res_Roberts1 = conv2(mask_Roberts1,imagem2_geraldo);
--> res_Roberts2 = conv2(mask_Roberts2,imagem2_geraldo);
--> subplot(121)
--> imshow(res_Roberts1)
--> subplot(122)
--> imshow(res_Roberts2)
> res_Prewitt1 = conv2(mask_Prewitt1,imagem2_geraldo);
--> res_Prewitt2 = conv2(mask_Prewitt2,imagem2_geraldo);
--> subplot(121)
--> imshow(res_Prewitt1)
--> subplot(122)
--> imshow(res_Prewitt2)
> res_Sobel1 = conv2(mask_Sobel1,imagem2_geraldo);
--> res_Sobel2 = conv2(mask_Sobel2,imagem2_geraldo);
--> subplot(121)
--> imshow(res_Sobel1)
--> subplot(122)
--> imshow(res_Sobel2)
Atividade Prática de Processamento de Imagens 14 Prof. Charles Way Hun Fung, MSc
II) Apresentação das Imagens Resultantes:
Figura 7: imagem(jetplane.tif) no filtro
Roberts1 e 2
Figura 8: imagem(jetplane.tif) no filtro
Prewitti1 e 2
Figura 9: imagem(jetplane.tif) no filtro
Sobel1 e 2
III) Explicação:
No caso dessa matriz, é possivel destacar
as bordas, bordas são usadas para
segmentar uma imagem baseada em
variações abruptas da intensidade dos
pixels. As bordas possuiem três modelos:
Degrau, Rampa e Telhado.
Atividade Prática de Processamento de Imagens 15 Prof. Charles Way Hun Fung, MSc
Figura 10: imagem(walkbrigde.tif) no
filtroRoberts1 e 2
Figura 11: imagem(walkbrigde.tif) no filtro
Prewitti 1 e 2
Figura 12: imagem(walkbrigde.tif) no filtro
Sobel 1 e 2
Atividade Prática de Processamento de Imagens 16 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:
-> imagem_geraldo = imread('jetplane.tif');
--> imshow(imagem_geraldo)
--> imagem_geraldo = double(imagem_geraldo);
--> mask_pa = [-1 -1 -1; -1 8 -1; -1 -1 -1]
--> res_pa = conv2(mask_pa,imagem_geraldo);
--> imshow(res_pa)
II) Apresentação das
Imagens Resultantes:
Figura 13: imagem
(jetplane.tif) no filtro
passa alta 3x3
III) Explicação:
O filtros de passa alta é o efeito que se faz tornar as
imagens mais nitidas nas regioes diferentes conhecidas
como bordas realçando o contrastre, possui tambem um
efeito de enfatizar o ruido presente na imagem.
REFERENCIA:http://hpc.ct.utfpr.edu.br/~charlie/docs/PID/PID
_AULA_08.pdf
Atividade Prática de Processamento de Imagens 17 Prof. Charles Way Hun Fung, MSc
Para resolver os exercícios 8, 9, 10 e 11 faça a leitura das imagens baboo_colorido.tif, jupiter.tif
e lena_colorida.tif usando o comando imread. Em todos os exercícios mostre o código, imagens
resultantes e apresente explicações.
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:
--> im_geraldo = imread('baboo_colorido.tif')
-> imshow(im_geraldo)
--> size(im_geraldo)
ans =
512. 512. 3.
--> red = im_geraldo(:, :, 1);
--> green = im_geraldo(:, :, 2);
--> blue = im_geraldo(:, :, 3);
--> subplot(131)
--> imshow(red)
--> subplot(132)
--> imshow(green)
--> subplot(133)
--> imshow(blue)
Atividade Prática de Processamento de Imagens 18 Prof. Charles Way Hun Fung, MSc
II) Apresentação das Imagens
Resultantes:
(a) (b) (c)
Figura 14: imagem (baboo_colorido)
com componentes separados red(a),
green(b) e blue(c).
III) Explicação:
Nessas imagens o que esta em destaque é o
branco, duas dessas imagens perto do nariz do
macaco foram elevados níveis de cinza, por isso a
diferença entre elas.
Atividade Prática de Processamento de Imagens 19 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:
-->im_geraldo = imread('lena_colorida.tif')
-->-> size(im_geraldo);
--> CMY = imcomplement(im_geraldo);
--> 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)
Atividade Prática de Processamento de Imagens 20 Prof. Charles Way Hun Fung, MSc
II) Apresentação das Imagens
Resultantes:
Figura 15: imagem (lena_colorida.tif)
com componentes C, M, Y,
separados.
III) Explicação:
Na imagem fica explícita a cor ciano separada,
puxando para a cor azul e amarela, já a cor magenta
não aparece por não obter tantos pontos na imagem
Atividade Prática de Processamento de Imagens 21 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:
-->im_geraldo = imread('jupiter.tif')
--> HSV = rgb2hsv(im_geraldo);
--> hue = HSV (:, :, 1);
--> sat = HSV (:, :, 2);
--> value = HSV (:, :, 3);
-> subplot(221)
--> imshow(HSV)
--> subplot(222)
--> imshow(hue)
--> subplot(223)
--> imshow(sat)
--> subplot(224)
--> imshow(value)
Atividade Prática de Processamento de Imagens 22 Prof. Charles Way Hun Fung, MSc
II) Apresentação das Imagens
Resultantes:
Figura 16: imagem (jupiter.tif) com
componentes hue, sat, value,
separados. .
III) Explicação:
Nestas imagem foram usados o sistema de cores
HSV, que utiliza a matriz, a saturação, e intensidade
para definir os espaços de cor da imagem.
IV) V)
Atividade Prática de Processamento de Imagens 23 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:
- > im_geraldo = imread('baboo_colorido.tif')
-> imshow(im_geraldo)
--> baboo_R = im_geraldo;
--> baboo_R(:, :,[2 3])=0;
--> imshow(baboo_R)
II) Apresentação das Imagens
Resultantes:
Figura 17: imagem
baboo_colorido separado a
componente vermelha
III) Explicação:
A diferença é que no exercicio de numero 8,
as cores red, green e blue foram todas separadas,
nesse caso usamos para separar somente a cor red
dando tons mais claros devido ao uso do filtro,dando
assim um maiordestaque na imagem.
Atividade Prática de Processamento de Imagens 24 Prof. Charles Way Hun Fung, MSc
Para resolver os exercícios 12, 13, 14, 15 e 16 faça a leitura das imagens baboo.tif e
pimentas.tif usando o comando imread. Em todos os exercícios mostre o código, imagens
resultantes e apresente explicações.
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:
- >im_geraldo = ('baboo.tif')
--> imres1 = imresize (im_geraldo,2);
--> imres2 = imresize (im_geraldo,0.5);
--> imres3 = imresize (im_geraldo,0.1);
--> subplot(221)
--> imshow(im_geraldo)
--> subplot(222)
--> imshow(imres1)
--> subplot(223)
--> imshow(imres2)
--> subplot(224)
--> imshow(imres3)
Atividade Prática de Processamento de Imagens 25 Prof. Charles Way Hun Fung, MSc
II) Apresentação das Imagens
Resultantes:
Figura 18: imagem Baboo.tif, com
comando imresize: original depois
nas escalas 2, 0.5, 0.1
III) Explicação:
Comando imresize, utilizado para dimiuir a escala
da imagem
Atividade Prática de Processamento de Imagens 26 Prof. Charles Way Hun Fung, MSc
Atividade Prática de Processamento de Imagens 27 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:
-> imshow(im_geraldo)
--> imres1 = imresize (im_geraldo,0.5);
--> imres2 = imresize (im_geraldo,0.2);
--> imres3 = imresize (im_geraldo,0.1);
--> imres4 = imresize (im_geraldo,0.08);
--> subplot(221)
--> imshow(imres1)
--> subplot(222)
--> imshow(imres2)
--> subplot(223)
--> imshow(imres3)
--> subplot(224)
--> imshow(imres4)
II) Apresentação das Imagens
Resultantes:
III) Explicação:
Atividade Prática de Processamento de Imagens 28 Prof. Charles Way Hun Fung, MSc
Figura 19: imagem pimentas.tif, nas
escalas 0.5
Podemos observar que nenhuma imagem fica
com a mesma qualidade, como foi dito no exercico
anteriormente, quanto menor for sua escala,
menos vamos ter uma imagem nitida.
Atividade Prática de Processamento de Imagens 29 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:
im_geraldo = imread('pimentas.tif');
imout1 = imrotate(im_geraldo,-45);
imout2 = imrotate(im_geraldo,-90);
imout3 = imrotate(im_geraldo,-180);
imout4 = imrotate(im_geraldo,-270);
-> subplot(221)
--> imshow(imout1)
--> subplot(222)
--> imshow(imout2)
--> subplot(224)
--> imshow(imout3)
--> subplot(223)
--> imshow(imout4)
Atividade Prática de Processamento de Imagens 30 Prof. Charles Way Hun Fung, MSc
II) Apresentação das Imagens
Resultantes:
Figura 20: imagens pimentas.tif,
função imrote no sentido horário
III) Explicação:
Comando imrote, utilizado para rotacionar a
imagem tanto no sentido horário como mostra a
imagem ou sentido antihorário.
Atividade Prática de Processamento de Imagens 31 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:
-> geraldo = imread('jetplane.tif');
-> imagemA = imcrop(geraldo,[10, 20, 200, 300]);
--> imagemB = imcropm(geraldo);
--> subplot(121)
--> imshow(imagemA)
--> subplot(122)
--> imshow(imagemB)
II) Apresentação das Imagens
Resultantes:
Figura 21: jetplane.tif, com efeito
zoom
III) Explicação:
Na primeira imagem foi utilizado o comando
imcrop, ele determina um zoom nas coordenadas
determinadas, já no comando imcropm permite
que você selecione as coordenadas que deseja
que apareça no determinado ponto da imagem.
Atividade Prática de Processamento de Imagens 32 Prof. Charles Way Hun Fung, MSc
Atividade Prática de Processamento de Imagens 33 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:
-> imagemA_Hor = imagemA(:, $: -1: 1);
--> imagemB_Ver = imagemA($: -1: 1, :);
-> subplot(121)
--> imshow(imagemA_Hor)
--> subplot(122)
--> imshow(imagemB_Ver)
Figura 22: jetplane.tif, com
espelhamento horizontal e vertical
II) Explicação:
Espelhamento realizado nas imagens do
exercício anterior.
Atividade Prática de Processamento de Imagens 34 Prof. Charles Way Hun Fung, MSc
Para resolver os exercícios 17, 18, 19 e 20 faça a leitura das imagens retangulo.tif, texto.tif,
U.tif e digital.tif usando o comando imread. Em todos os exercícios mostre o código, imagens
resultantes e apresente explicações.
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:
-> geraldo = zeros(10,10);
--> geraldo(4:7,4:7)=1;
--> ES = imcreatese('rect',3,3);
--> dilatado = imdilate(geraldo,ES);
--> imshow(dilatado)
II) Apresentação das Imagens
Resultantes:
Figura 23: imagem retangulo
III) Explicação:
Imagem retangulo formada, utilizando operações
de dilatação da imagem.
Atividade Prática de Processamento de Imagens 35 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:
-> geraldo = imread('texto.tif');
--> ES = imcreatese('rect',2,2);
--> dilat = imdilate(geraldo,ES);
--> subplot(121)
--> imshow(geraldo)
--> subplot(122)
--> imshow(dilat)
II) Apresentação das Imagens Resultantes:
Figura 24: imagem texto.tif (a) original e a (b)
com operação de dilatação
III) Explicação:
Com o efeito de dilatação é possivel
ler o texto com mais nitidez.
Atividade Prática de Processamento de Imagens 36 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:
-> geraldo = imread('U.tif');
--> ES = imcreatese('rect',15,15);
--> dilat = imdilate(geraldo,ES);
--> i = dilat - geraldo;
--> imshow(i)
II) Apresentação das Imagens
Resultantes:
Figura 25: imagem U.tif.
III) Explicação:
Utilizando as operações morfológicas as bordas são
identificadas com segue na imagem ao lado.
Atividade Prática de Processamento de Imagens 37 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:
->geraldo = imread('digital.tif');
-> imagBin = im2bw(geraldo,0.5);
--> ES = imcreatese('rect',2,2);
--> dilat = imdilate(imagBin,ES);
--> erodil = imerode(dilat,ES);
--> subplot(131)
--> imshow(geraldo)
--> subplot(132)
--> imshow(dilat)
--> subplot(133)
--> imshow(erodil)II) Apresentação das Imagens Resultantes:
Figura 26: imagem digital.tif, (a)original, (b) efeito
dilatação, (c) efeito erosão.
III) Explicação:
O processo de binariazação e
dilatação foi utilizado para
restaurar os dados, e a erosão
para aumentar a região de
pontos escuros.