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

38
Fundamentos de Processamento Digital de Imagens Com projetos práticos no GNU Octave By Jotacísio

Upload: potilivre

Post on 15-Apr-2017

18 views

Category:

Software


0 download

TRANSCRIPT

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

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

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

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

Expandindo para ver melhor os pixels, como fica?

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

Então, o que seria processamento digital de imagens?

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

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

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

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

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

Algumas áreas que utilizam PDIMeteorologia

Furacão Katrina

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

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

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

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

Passos Fundamentais

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

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

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

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

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

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

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

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

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

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

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

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

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

Os famosinhos do PDI

USD 625 Livre Livre

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

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

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

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

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

Operadores Lógicos

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

Estruturas Condicionais

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

Estruturas Condicionais

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

Estruturas de Repetição

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

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

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

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.