trablaboratorial pdsi 03
TRANSCRIPT
UniZambeze – U n i v e r s i d a d e Z a m b e z e Processamento digital de Sinal e Imagem FCT - Faculdade de Ciências e Tecnologia Trabalho Trabalho Laboratorial no 3 - Operações lógicas, aritméticas e estatísticas com imagens.
11 de abril de 2023 - Curso e ano: Engenharia Informatica, 2º ano 4º semestr Docente: Eng. Essitone Lote Gimo pag. 1 de 6
UniZambeze – U n i v e r s i d a d e Z a m b e z e Processamento digital de Sinal e Imagem FCT - Faculdade de Ciências e Tecnologia Trabalho Trabalho Laboratorial no 3 - Operações lógicas, aritméticas e estatísticas com imagens.
Trabalho Laboratorial no 3 - Operações lógicas, aritméticas e estatísticas com imagens.
1. OBJETIVOS:
1.1 Executar operações lógicas e aritméticas entre imagens.1.2 Obter parâmetros estatísticos de imagens.
2.RESUMO DA TEORIA:
Imagens são matrizes. Portanto, as propriedades de aritmética e álgebra matricial também são válidas para imagens e todas as operações que se pode efetuar com matrizes também podem ser efetuadas com imagens.
Dentre as operações aritméticas que se pode realizar com imagens, veremos as seguintes:‚ Adição‚ Subtração‚ Multiplicação‚ Divisão‚ Diferença absoluta
Dentre as operações lógicas que se pode realizar com imagens, veremos:
‚ AND‚ OR‚ XOR
Para uma visão ampla das aplicações destas operações sobre imagens binarizadas sugerimos o capítulo 7 de [Russ 1995].Dentre os parâmetros estatísticos que se podem extrair de uma imagem, veremos:
‚ Média‚ Desvio padrão
3. PROCEDIMENTO:
3.1. Iniciar o MATLAB.
3.2. Para a primeira parte desta prática trabalharemos com três imagens de mesmo tamanho. Em decorrência disto, inicialmente utilizaremos a função imcrop para criar três imagens de mesmo tamanho (100 x 100), a partir das imagens
trees, kids e forest e utilizaremos as funções
ind2gray e im2bw para gerar suas versões monocromáticas e binarizadas, respectivamente.
rect = [5, 5, 100, 100];load treesY1 = X;map1 = map;Y1 = imcrop(Y1,rect);M1 = ind2gray(Y1, map1);BW1= im2bw(Y1,map1,.5);load kidsY2 = X;
11 de abril de 2023 - Curso e ano: Engenharia Informatica, 2º ano 4º semestr Docente: Eng. Essitone Lote Gimo pag. 2 de 6
UniZambeze – U n i v e r s i d a d e Z a m b e z e Processamento digital de Sinal e Imagem FCT - Faculdade de Ciências e Tecnologia Trabalho Trabalho Laboratorial no 3 - Operações lógicas, aritméticas e estatísticas com imagens.
map2 = map;Y2 = imcrop(Y2,rect);M2 = ind2gray(Y2, map2);BW2=im2bw(Y2,map2,.3);load forestY3 = X;map3 = map;Y3 = imcrop(Y3,rect);M3 = ind2gray(Y3, map3);BW3=im2bw(Y3,map3,.5);
3.3. Para ilustrar a operação de adição, vamos mostrar em uma única janela as imagens BW1, BW2 e BW3 juntamente com os resultados das adições entre elas (BW1+BW2, BW2+BW3, BW1+BW3):
subplot(2,3,1), imshow(BW1,2), title('BW1')subplot(2,3,2), imshow(BW2,2), title('BW2')subplot(2,3,3), imshow(BW3,2), title('BW3')subplot(2,3,4), imshow((BW1+BW2),2), title('BW1+BW2')subplot(2,3,5), imshow((BW1+BW3),2), title('BW1+BW3')subplot(2,3,6), imshow((BW2+BW3),2), title('BW2+BW3')
3.4. Examinar atentamente os resultados, maximizando a janela que contém as seis imagens, e concluir a respeito da adição de imagens binarizadas.
3.5. Analogamente, para ilustrar a operação de subtração, vamos mostrar em uma única janela as imagens BW1, BW2 e BW3 juntamente com os seis possíveis resultados das subtrações entre elas (BW1-BW2, BW2-BW3, BW1-BW3, BW3-BW2, BW2-BW1, BW3-BW1):
subplot(3,3,1), imshow(BW1,2), title('BW1')subplot(3,3,2), imshow(BW2,2), title('BW2')subplot(3,3,3), imshow(BW3,2), title('BW3')subplot(3,3,4), imshow((BW1-BW2),2), title('BW1-BW2')subplot(3,3,5), imshow((BW2-BW1),2), title('BW2-BW1')subplot(3,3,6), imshow((BW3-BW1),2), title('BW3-BW1')subplot(3,3,7), imshow((BW1-BW3),2), title('BW1-BW3')subplot(3,3,8), imshow((BW2-BW3),2), title('BW2-BW3')subplot(3,3,9), imshow((BW3-BW2),2), title('BW3-BW2')
3.6. Examinar atentamente os resultados, maximizando a janela que contém as nove imagens, e concluir a respeito.
3.7. Para exemplificar a adição de imagens monocromáticas, repetiremos o passo 3.3, agoracom as imagens M1, M2 e M3.
subplot(2,3,1), imshow(M1,256), title('M1')subplot(2,3,2), imshow(M2,256), title('M2')subplot(2,3,3), imshow(M3,256), title('M3')subplot(2,3,4), imshow((M1+M2),256), title('M1+M2')subplot(2,3,5), imshow((M1+M3),256), title('M1+M3')subplot(2,3,6), imshow((M2+M3),256), title('M2+M3')
3.8. Examinar atentamente os resultados, maximizando a janela que contém as seis imagens e concluir a respeito.
3.9. Analogamente, efetuar agora as seis subtrações possíveis entre as imagens M1, M2 e M3 eexibir os resultados obtidos, concluindo a respeito. 3
11 de abril de 2023 - Curso e ano: Engenharia Informatica, 2º ano 4º semestr Docente: Eng. Essitone Lote Gimo pag. 3 de 6
UniZambeze – U n i v e r s i d a d e Z a m b e z e Processamento digital de Sinal e Imagem FCT - Faculdade de Ciências e Tecnologia Trabalho Trabalho Laboratorial no 3 - Operações lógicas, aritméticas e estatísticas com imagens.
Solução:
3 Para garantir que os valores resultantes da subtração são coerentes com a teoria e estão contidos nointervalo normalizado [0, 1] utilizamos uma operação de truncamento dos valores negativos, zerando-os.
subplot(3,3,1),imshow(M1,256), title('M1')subplot(3,3,2),imshow(M2,256), title('M2')subplot(3,3,3),imshow(M3,256), title('M3')subplot(3,3,4),imshow((M1-M2).*((M1-M2)>=0),256),title('M1-M2')subplot(3,3,5),imshow((M2-M1).*((M2-M1)>=0),256),title('M2-M1')subplot(3,3,6),imshow((M3-M1).*((M3-M1)>=0),256),title('M3-M1')subplot(3,3,7),imshow((M1-M3).*((M1-M3)>=0),256),title('M1-M3')subplot(3,3,8),imshow((M2-M3).*((M2-M3)>=0),256),title('M2-M3')subplot(3,3,9),imshow((M3-M2).*((M3-M2)>=0),256),title('M3-M2')
3.10. Nesta etapa examinaremos a multiplicação entre imagens monocromáticas. Em geral, quando os níveis de cinza das imagens não estão normalizados, deve-se especificar um fator (<1) para multiplicar pelo resultado da operação de multiplicação, de tal maneira que a imagem resultante possua valores dentro da faixa de níveis de cinza desejada. No MATLAB, entretanto, isto não é necessário, pois as imagens já estão normalizadas em uma faixa de 0 a 1.Notar que a operação utilizada no MATLAB é o produto elemento-por-elemento (denotado pelo símbolo '.*'), pois é isto o que se deseja, não um produto matricial.
subplot(2,3,1), imshow(M1,256), title('M1')subplot(2,3,2), imshow(M2,256), title('M2')subplot(2,3,3), imshow(M3,256), title('M3')subplot(2,3,4), imshow((M1.*M2),256), title('M1*M2')subplot(2,3,5), imshow((M1.*M3),256), title('M1*M3')subplot(2,3,6), imshow((M2.*M3),256), title('M2*M3')
3.11. Examinar os resultados, maximizando a janela que contém as seis imagens, e concluir a respeito da multiplicação de imagens monocromáticas.
3.12. Analogamente ao passo 10, efetuaremos agora a divisão entre os elementos das matrizes M1, M2 e M3, dois a dois. O operador utilizado será './' pelos mesmos motivos mencionados antes para a multiplicação.
subplot(3,3,1), imshow(M1,256), title('M1')subplot(3,3,2), imshow(M2,256), title('M2')subplot(3,3,3), imshow(M3,256), title('M3')subplot(3,3,4), imshow((M1./M2),256), title('M1/M2')subplot(3,3,5), imshow((M2./M1),256), title('M2/M1')subplot(3,3,6), imshow((M3./M1),256), title('M3/M1')subplot(3,3,7), imshow((M1./M3),256), title('M1/M3')subplot(3,3,8), imshow((M2./M3),256), title('M2/M3')subplot(3,3,9), imshow((M3./M2),256), title('M3/M2')
Notar que o MATLAB poderá emitir mensagens de alerta por possíveis tentativas de divisão por zero, que não prejudicam a conclusão da operação ou sua interpretação qualitativa.
3.13. Examinar atentamente os resultados, maximizando a janela que contém as nove imagens e concluir acerca da divisão de imagens monocromáticas.
3.14. Para finalizar nosso estudo de operações aritméticas, ilustraremos o uso da função abs para obtermos a diferença absoluta entre duas imagens, denominando-a pelo nome simbólico DIF.
subplot(3,3,1), imshow(M1,256), title('M1')subplot(3,3,2), imshow(M2,256), title('M2')
11 de abril de 2023 - Curso e ano: Engenharia Informatica, 2º ano 4º semestr Docente: Eng. Essitone Lote Gimo pag. 4 de 6
UniZambeze – U n i v e r s i d a d e Z a m b e z e Processamento digital de Sinal e Imagem FCT - Faculdade de Ciências e Tecnologia Trabalho Trabalho Laboratorial no 3 - Operações lógicas, aritméticas e estatísticas com imagens.
subplot(3,3,3), imshow(M3,256), title('M3')subplot(3,3,4), imshow(abs(M1-M2),256), title('M1 DIF M2')subplot(3,3,5), imshow(abs(M2-M3),256), title('M2 DIF M3')subplot(3,3,6), imshow(abs(M3-M1),256), title('M3 DIF M1')subplot(3,3,7), imshow(abs(M2-M1),256), title('M2 DIF M1')subplot(3,3,8), imshow(abs(M3-M2),256), title('M3 DIF M2')subplot(3,3,9), imshow(abs(M1-M3),256), title('M1 DIF M3')
Os valores das janelas 4 e 7, 5 e 8, 6 e 9, são (ou parecem ser) idênticos dois a dois? Por quê?
3.15. Para exemplificar as operações lógicas entre imagens, tornaremos a utilizar as imagens binarizadas BW1, BW2 e BW3 e os operadores lógicos & (and), | (or) e xor, disponíveis no MATLAB. Faremos isto mostrando seis imagens por janela (as três originais mais os três resultados do uso de um certo operador). Inicialmente para o operador and:
subplot(2,3,1), imshow(BW1,2), title('BW1')subplot(2,3,2), imshow(BW2,2), title('BW2')subplot(2,3,3), imshow(BW3,2), title('BW3')subplot(2,3,4), imshow((BW1&BW2),2), title('BW1 and BW2')subplot(2,3,5), imshow((BW1&BW3),2), title('BW1 and BW3')subplot(2,3,6), imshow((BW2&BW3),2), title('BW2 and BW3')
3.16. Examinar atentamente os resultados, maximizando a janela que contém as seis imagens e concluir a respeito.3.17. Repita os passos 15 e 16, desta vez para o operador or. Solução:
subplot(2,3,4), imshow((BW1|BW2),2), title('BW1 or BW2')subplot(2,3,5), imshow((BW1|BW3),2), title('BW1 or BW3')subplot(2,3,6), imshow((BW2|BW3),2), title('BW2 or BW3')
3.18. Repita os passos 15 e 16, desta vez para o operador xor.Solução:
subplot(2,3,4), imshow((xor(BW1,BW2)),2), title('BW1 xor BW2')subplot(2,3,5), imshow((xor(BW1,BW3)),2), title('BW1 xor BW3')subplot(2,3,6), imshow((xor(BW2,BW3)),2), title('BW2 xor BW3')
3.19. Deixamos como exercício efetuar operações lógicas sobre imagens com múltiplos níveis de cinza, uma vez que o MATLAB não nos permite fazê-lo diretamente (veja a descrição dos operadores &, | e xor no arquivo de ajuda do software).
3.20. O MATLAB permite extrair algumas informações estatísticas sobre o conteúdo de uma imagem. A seguir, verificaremos a média e o desvio padrão de cada uma das três imagens monocromáticas M1, M2 e M3, armazenando os resultados nas variáveis m1, m2, m3, d1, d2 e d3, respectivamente. Anotar os resultados obtidos e concluir a respeito.
m1=mean2(M1)m2=mean2(M2)m3=mean2(M3)d1=std2(M1)d2=std2(M2)d3=std2(M3)
4-DISCUSSÃO DOS RESSULTADOS DO TRABALHO :
11 de abril de 2023 - Curso e ano: Engenharia Informatica, 2º ano 4º semestr Docente: Eng. Essitone Lote Gimo pag. 5 de 6
UniZambeze – U n i v e r s i d a d e Z a m b e z e Processamento digital de Sinal e Imagem FCT - Faculdade de Ciências e Tecnologia Trabalho Trabalho Laboratorial no 3 - Operações lógicas, aritméticas e estatísticas com imagens.
4.1-Discuta com colegas ou docente os resultados alcançados em cada item antes do relatório escrito.
5 -CONCLUSÕES DO TRABALHO
5.1 Conclua se os resultados são ou não aceitáveis 5.2 Conclua acerca das facilidades ou dificuldades do hardware e software utizados no trabalho.
11 de abril de 2023 - Curso e ano: Engenharia Informatica, 2º ano 4º semestr Docente: Eng. Essitone Lote Gimo pag. 6 de 6