processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal
TRANSCRIPT
![Page 1: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/1.jpg)
Fundamentos de Processamento Digital de Imagens
Com projetos práticos no
GNU Octave
By Jotacísio
![Page 2: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/2.jpg)
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.
![Page 3: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/3.jpg)
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)
![Page 4: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/4.jpg)
Expandindo para ver melhor os pixels, como fica?
![Page 5: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/5.jpg)
Então, o que seria processamento digital de imagens?
![Page 6: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/6.jpg)
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.
![Page 7: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/7.jpg)
Algumas áreas que utilizam PDIRadiologia
Tomografia axial computadorizada
Radiografia torácica
![Page 8: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/8.jpg)
Algumas áreas que utilizam PDIAgricultura
Milho infectado por fungoÍndice de Vegetação da Diferença Normalizada
![Page 9: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/9.jpg)
Algumas áreas que utilizam PDIHardware
PCB (placa de circuito impresso)
![Page 10: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/10.jpg)
Algumas áreas que utilizam PDIMeteorologia
Furacão Katrina
![Page 11: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/11.jpg)
Algumas áreas que utilizam PDIJogos
MultiSample Anti-Aliasing(30% de perda de desempenho)
![Page 12: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/12.jpg)
Algumas áreas que utilizam PDIJogos
Tecnologia Nvidia para melhoramento de resolução de jogos que usa o filtro gaussiano
![Page 13: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/13.jpg)
Algumas áreas que utilizam PDIJogos
Tecnologia AMD para melhoramento de resolução de jogos que simula o SSAA, um tipo de antisserrilhamento.
![Page 14: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/14.jpg)
Passos Fundamentais
![Page 15: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/15.jpg)
Passos Fundamentais
● Adquirir ou receber uma imagem digital;
● Geralmente envolveum pré- processamento, por exemplo o redimensionamento.
![Page 16: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/16.jpg)
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.
![Page 17: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/17.jpg)
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.
![Page 18: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/18.jpg)
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.
![Page 19: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/19.jpg)
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.
![Page 20: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/20.jpg)
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.
![Page 21: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/21.jpg)
Passos Fundamentais
● Lida com ferramentas para a extração de componentes de imagens úteis na representação da forma.
![Page 22: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/22.jpg)
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.
![Page 23: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/23.jpg)
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.
![Page 24: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/24.jpg)
Passos Fundamentais
● O reconhecimento é o processo que atribui um rótulo a um objeto com base em seus descritores.
![Page 25: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/25.jpg)
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.
![Page 26: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/26.jpg)
Não era pra usa software livre? Então por favor, sejamos mais
práticos.
GNU Octave
![Page 27: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/27.jpg)
Os famosinhos do PDI
USD 625 Livre Livre
![Page 28: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/28.jpg)
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.
![Page 29: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/29.jpg)
Alguns comandos do terminalVariá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 maisvariá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 vezque 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.
![Page 30: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/30.jpg)
Alguns comandos do terminalConcatenação de palavras
>> a=‘Duas’;
>> b=‘ ’;
>> c=‘palavras.’;
>> [a b c]
ans =
Duas palavras.
![Page 31: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/31.jpg)
Alguns comandos do terminalMatrizes
>> [1,2;3,4]
ans =
1 2
3 4
>> [ans [5;6]]
ans =
1 2 3
4 5 6
![Page 32: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/32.jpg)
Operadores Lógicos
![Page 33: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/33.jpg)
Estruturas Condicionais
![Page 34: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/34.jpg)
Estruturas Condicionais
![Page 35: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/35.jpg)
Estruturas de Repetição
![Page 36: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/36.jpg)
Primeiro exemplo prático1. Ler a imagem – imread
2. Exibir a imagem – imshow
3. Manipular os pixels da imagem individualmente
4. Inserir um degradê na imagem
![Page 37: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/37.jpg)
Segundo exemplo prático
1. Elaborar um algoritmo que leia uma imagem e aplique a moldura conforme mostrado ao lado.
![Page 38: Processamento digital de imagens com gnu octave jotacisio araujo oliveira flisol 2017 natal](https://reader034.vdocuments.site/reader034/viewer/2022050900/58f123471a28ab4c478b456b/html5/thumbnails/38.jpg)
Terceiro exemplo prático1. 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 osresultados;
5. Utilizando o laço de repetição “for”, aumente o valor de cada pixel de imCinzaem 40%, gerando a imagem saida1;
6. Utilizando o laço de repetição “for”, diminua o valor de cada pixel de imCinzaem 40%, gerando a imagem saida2;
7. Mostre em três janelas diferentes, com os nomes dos arquivos nos títulos dasjanelas, 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 osresultados.