Baixe o app para aproveitar ainda mais
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.
Compartilhar