Вы находитесь на странице: 1из 38

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
y
● x é a coordenada espacial
da vertical

● y é a coordenada espacial f(x,y)


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


x
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 PDI
Radiologia

Radiografia torácica

Tomografia axial computadorizada


Algumas áreas que utilizam PDI
Agricultura

Milho infectado por fungo


Índice de Vegetação da Diferença Normalizada
Algumas áreas que utilizam PDI
Hardware

PCB (placa de circuito impresso)


Algumas áreas que utilizam PDI
Meteorologia

Furacão Katrina
Algumas áreas que utilizam PDI
Jogos

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


Algumas áreas que utilizam PDI
Jogos

Tecnologia Nvidia para melhoramento de resolução de jogos que


usa o filtro gaussiano
Algumas áreas que utilizam PDI
Jogos

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 envolve
um 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 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.


Alguns comandos do terminal
Concatenação de palavras

>> a=‘Duas’;
>> b=‘ ’;
>> c=‘palavras.’;
>> [a b c]
ans =
Duas palavras.
Alguns comandos do terminal
Matrizes

>> [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ático
1. 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á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.

Вам также может понравиться