Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal

46 visualizações

Publicada em

Processamento Digital de Imagens com GNU Octave - Jotacisio Araujo Oliveira FLISOL 2017 Natal

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
46
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal

  1. 1. Fundamentos de Processamento Digital de Imagens Com projetos práticos no GNU Octave By Jotacísio
  2. 2. Matematicamente falando, o que é uma imagem monocromática? ● É uma função de duas dimensões, f(x,y), em que x e y são coordenadas espaciais (plano), e a amplitude de f de qualquer par de coordenadas (x, y) é chamada de intensidade ou nível de cinza. ● Se temos um conjunto finito e discreto de valores para f, x e y podemos chamar uma imagem de imagem digital. ● Cada elemento que compõe a imagem chamamos de pixels, uma abreviação de picture elements. ● A nível de programação podemos dizer que uma imagem seria um vetor bidimensional, ou matriz.
  3. 3. Matematicamente falando, o que é uma imagem monocromática? Origem x y ● x é a coordenada espacial da vertical ● y é a coordenada espacial da horizontal ● f(x,y) é um valor finito que define a intensidade ou nível de cinza ● f(x,y) varia de 0 a 255 f(x,y)
  4. 4. Expandindo para ver melhor os pixels, como fica?
  5. 5. Então, o que seria processamento digital de imagens?
  6. 6. O conceito de PDI ● De forma ampla PDI abrange uma grande escala de Hardware, Software e fundamentos teóricos. Mas numa visão bem específica podemos dizer que é um conjunto de códigos algorítmicos que tem a finalidade específica de manipular uma imagem. ● Sendo assim, a entrada e saída de um programa feito para PDI sempre será uma imagem.
  7. 7. Algumas áreas que utilizam PDI Radiologia Tomografia axial computadorizada Radiografia torácica
  8. 8. Algumas áreas que utilizam PDI Agricultura Milho infectado por fungo Índice de Vegetação da Diferença Normalizada
  9. 9. Algumas áreas que utilizam PDI Hardware PCB (placa de circuito impresso)
  10. 10. Algumas áreas que utilizam PDI Meteorologia Furacão Katrina
  11. 11. Algumas áreas que utilizam PDI Jogos MultiSample Anti-Aliasing(30% de perda de desempenho)
  12. 12. Algumas áreas que utilizam PDI Jogos Tecnologia Nvidia para melhoramento de resolução de jogos que usa o filtro gaussiano
  13. 13. Algumas áreas que utilizam PDI Jogos Tecnologia AMD para melhoramento de resolução de jogos que simula o SSAA, um tipo de antisserrilhamento.
  14. 14. Passos Fundamentais
  15. 15. Passos Fundamentais ● Adquirir ou receber uma imagem digital; ● Geralmente envolve um pré- processamento, por exemplo o redimensionamento.
  16. 16. Passos Fundamentais ● Processo de manipular uma imagem de forma que o resultado seja mais adequado que o original para uma aplicação específica; ● Baseia-se em preferências humanas subjetivas.
  17. 17. Passos Fundamentais ● Melhora visual de uma imagem cujas técnicas tendem a se basear em modelos matemáticos ou probabilísticos; ● Mais objetivo do que o realce.
  18. 18. Passos Fundamentais ● Processamento básico de cores e modelos de cores de um ambiente digital; ● A cor também é utilizada para extração de características.
  19. 19. Passos Fundamentais ● As wavelets constituem os fundamentos para representação de imagens em vários níveis de resolução; ● Compressão de dados e subdivisão da imagem de regiões menores.
  20. 20. Passos Fundamentais ● Lida com as técnicas de redução do armazenamento necessário para salvar uma imagem, ou a largura de banda necessária para transmiti-la.
  21. 21. Passos Fundamentais ● Lida com ferramentas para a extração de componentes de imagens úteis na representação da forma.
  22. 22. Passos Fundamentais ● Os procedimentos de segmentação dividem uma imagem em suas partes ou objetos constituintes; ● Aumentam as chances de sucesso para problemas que requerem a identificação individual dos objetos.
  23. 23. Passos Fundamentais ● Quase sempre partem do resultado da segmentação, correspondendo à fronteira de uma região ou aos pontos dentro dela; ● A descrição (ou seleção de características) lida com a extração de atributos que resultem em informações de interesse.
  24. 24. Passos Fundamentais ● O reconhecimento é o processo que atribui um rótulo a um objeto com base em seus descritores.
  25. 25. Passos Fundamentais ● A codificação do conhecimento sobre o problema a ser abordado; ● Na prática é uma base de dados que pode ser armazenado de um banco e consultado quando preciso. ● Ela dispensa um especialista em problemas onde é preciso fazer uma análise das imagens ao longo do processo ou no final dele.
  26. 26. Não era pra usa software livre? Então por favor, sejamos mais práticos. GNU Octave
  27. 27. Os famosinhos do PDI USD 625 Livre Livre
  28. 28. Vantagens do octave ● Sintaxe de orientação matemática com poderosas ferramentas de visualização e plotagem embutidos ● Software livre, roda em GNU/Linux, macOS, BSD e Windows ● Sintaxe amplamente compatível com Matlab ● É facilmente extensível e personalizável através de funções definidas pelo usuário escritas na própria linguagem do Octave, ou usando módulos carregados dinamicamente escritos em C ++, C, Fortran ou outras linguagens.
  29. 29. Alguns comandos do terminal Variáveis ● who: Lista os nomes das variáveis. ● whos: Lista o nome e o tipo das variáveis. ● clear: Elimina todas as variáveis da área de trabalho. Para se apagar uma ou mais variáveis utiliza-se o comando clear seguido dos nomes das variáveis separadas por espaço. ● save: Salva as variáveis em arquivo, podendo utilizá-las novamente na próxima vez que o programa for inicializado ou mesmo quando executado o comando clear. ● load: Recupera as variáveis previamente salvas em arquivo pelo comando save. ● clc: Limpa a janela de comandos.
  30. 30. Alguns comandos do terminal Concatenação de palavras >> a=‘Duas’; >> b=‘ ’; >> c=‘palavras.’; >> [a b c] ans = Duas palavras.
  31. 31. Alguns comandos do terminal Matrizes >> [1,2;3,4] ans = 1 2 3 4 >> [ans [5;6]] ans = 1 2 3 4 5 6
  32. 32. Operadores Lógicos
  33. 33. Estruturas Condicionais
  34. 34. Estruturas Condicionais
  35. 35. Estruturas de Repetição
  36. 36. Primeiro exemplo prático 1. Ler a imagem – imread 2. Exibir a imagem – imshow 3. Manipular os pixels da imagem individualmente 4. Inserir um degradê na imagem
  37. 37. Segundo exemplo prático 1. Elaborar um algoritmo que leia uma imagem e aplique a moldura conforme mostrado ao lado.
  38. 38. Terceiro exemplo prático 1. Leia a imagem Lena.jpg (im); 2. Mostre o tamanho da imagem im na janela de comando; 3. Transforme para escalas de cinza (imCinza); 4. Mostre o tamanho da imagem imCinza na janela de comando e compare os resultados; 5. Utilizando o laço de repetição “for”, aumente o valor de cada pixel de imCinza em 40%, gerando a imagem saida1; 6. Utilizando o laço de repetição “for”, diminua o valor de cada pixel de imCinza em 40%, gerando a imagem saida2; 7. Mostre em três janelas diferentes, com os nomes dos arquivos nos títulos das janelas, as imagens imCinza, saida1 e saida2; 8. Escreva as imagens imCinza, saida1 e saida2 no disco; 9. Substitua os laços “for” por atribuições diretas; 10. Conte os tempos de execuções com e sem laços de repetição e compare os resultados.

×