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. 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)
5. Então, o que seria processamento digital de
imagens?
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. Algumas áreas que utilizam PDI
Radiologia
Tomografia axial computadorizada
Radiografia torácica
8. Algumas áreas que utilizam PDI
Agricultura
Milho infectado por fungo
Índice de Vegetação da Diferença Normalizada
9. Algumas áreas que utilizam PDI
Hardware
PCB (placa de circuito impresso)
15. Passos Fundamentais
● Adquirir ou receber
uma imagem digital;
● Geralmente envolve
um pré- processamento,
por exemplo o
redimensionamento.
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. 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.
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. 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. Passos Fundamentais
● Lida com
ferramentas para a
extração de
componentes de
imagens úteis na
representação da
forma.
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. 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. Passos Fundamentais
● O reconhecimento é o
processo que atribui um
rótulo a um objeto com
base em seus descritores.
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. Não era pra usa software livre?
Então por favor, sejamos mais
práticos.
GNU Octave
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. 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. Alguns comandos do terminal
Concatenação de palavras
>> a=‘Duas’;
>> b=‘ ’;
>> c=‘palavras.’;
>> [a b c]
ans =
Duas palavras.
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
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. Segundo exemplo prático
1. Elaborar um algoritmo que
leia uma imagem e aplique a
moldura conforme mostrado
ao lado.
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.