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