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

Post on 15-Apr-2017

18 views 0 download

Transcript of 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

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.

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)

Expandindo para ver melhor os pixels, como fica?

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

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.

Algumas áreas que utilizam PDIRadiologia

Tomografia axial computadorizada

Radiografia torácica

Algumas áreas que utilizam PDIAgricultura

Milho infectado por fungoÍndice de Vegetação da Diferença Normalizada

Algumas áreas que utilizam PDIHardware

PCB (placa de circuito impresso)

Algumas áreas que utilizam PDIMeteorologia

Furacão Katrina

Algumas áreas que utilizam PDIJogos

MultiSample Anti-Aliasing(30% de perda de desempenho)

Algumas áreas que utilizam PDIJogos

Tecnologia Nvidia para melhoramento de resolução de jogos que usa o filtro gaussiano

Algumas áreas que utilizam PDIJogos

Tecnologia AMD para melhoramento de resolução de jogos que simula o SSAA, um tipo de antisserrilhamento.

Passos Fundamentais

Passos Fundamentais

● Adquirir ou receber uma imagem digital;

● Geralmente envolveum pré- processamento, por exemplo o redimensionamento.

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.

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.

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.

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.

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.

Passos Fundamentais

● Lida com ferramentas para a extração de componentes de imagens úteis na representação da forma.

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.

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.

Passos Fundamentais

● O reconhecimento é o processo que atribui um rótulo a um objeto com base em seus descritores.

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.

Não era pra usa software livre? Então por favor, sejamos mais

práticos.

GNU Octave

Os famosinhos do PDI

USD 625 Livre Livre

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.

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.

Alguns comandos do terminalConcatenação de palavras

>> a=‘Duas’;

>> b=‘ ’;

>> c=‘palavras.’;

>> [a b c]

ans =

Duas palavras.

Alguns comandos do terminalMatrizes

>> [1,2;3,4]

ans =

1 2

3 4

>> [ans [5;6]]

ans =

1 2 3

4 5 6

Operadores Lógicos

Estruturas Condicionais

Estruturas Condicionais

Estruturas de Repetição

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

Segundo exemplo prático

1. Elaborar um algoritmo que leia uma imagem e aplique a moldura conforme mostrado ao lado.

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.