e-mail : [email protected] Prof. Responsáveis Wagner ... · Funcionamento da visão 61 30% 59%...
Transcript of e-mail : [email protected] Prof. Responsáveis Wagner ... · Funcionamento da visão 61 30% 59%...
Disciplina Processamento de SinaisCurso Análise e Desenvolvimento de Sistemas
Noção da Análise de Fourier e Análise Espectrográfica de sinais, Estudo de Caso do
Processamento Sinais Aplicado a Imagens
e-mail : [email protected]
Prof. ResponsáveisWagner Santos C. de Jesus
Exemplo de atenuação
tau = 3;A = 10omega = pi();t = linspace(0,10,100);y = A * exp(-t./tau).*sin(omega .* t);plot(t,y,'LineWidth',4);grid on;
4A_Atenuacao.m
Histórico de Fourier
6
Jean-Baptiste JosephFourier – 1768 a 1830
Matemático e Físico Francês .
Celebrado por iniciar a investigaçãosobre a decomposição de funçõesperiódicas em séries trigonométricasconvergentes chamadas séries deFourier e a sua aplicação aosproblemas da condução do calor.
Fourier - Conceito
Toda função periódica poderiaser escrita e representadacomo a somatória de senos ecossenos.
7
Sinal Digital
Considere a cada:
11
]360..181[,0
]180..0[,1
t
t
0
0,2
0,4
0,6
0,8
1
1,2
Sinal Binário
Equações de aproximação
14
)(4
)( tsentfπ=
)3(3
1)(
4)( tsentsentf += π
)7(7
1)5(
5
1)3(
3
1)(
4)( tsentsentsentsentf +++= π
)5(5
1)3(
3
1)(
4)( tsentsentsentf ++= π
∑=
++
+=n
i
tnsenn
tsentf1
)2(2
1)(
4)(
π
Implementação Base Fourier
clear all;clc;t = [0:1800];x = pi()/2*sin(t*pi()/180);subplot(4,1,1);plot(x);y = 4/pi()*sin(t*pi()/180) + 1/3*sin(3*t*pi()/180);subplot(4,1,2);plot(y);z = 4/pi()*sin(t*pi()/180) + 1/3*sin(3*t*pi()/180)+ 1/5*sin(5*t*pi()/180);subplot(4,1,3);plot(z);k = 4/pi()*sin(t*pi()/180) + 1/3*sin(3*t*pi()/180)+ 1/5*sin(5*t*pi()/180) + 1/7*sin(7*t*pi()/180);subplot(4,1,4);plot(k);
15A_passos_F.m
Conceito Matemático
16
)sin()cos()( 01
1010 tnbtnaatfn
ωω∑∞
=
++=
Série de Fourier
Teorema de Fourier
)sin(...)2sin()sin( 002010 φωφωφω +++++++= tnAtAtAAv n
Equação
18
+−−−+−−−= ...)3cos(3
)(3sin)2cos(
2
)(2sincos
1
)sin(
2
2x
ax
ax
aaay
πππππ
Demonstra um pico de Amplitude sobreum fenômeno de baixa intensidade.
Função pico de Amplitude
clear all;clc;fs = 1000;a = 3;x = [a:1/fs:2*pi()-a];q = 0;for i=1:2:100
y = (2*a/pi())*((pi()-a)/2-(sin(pi()-a)/i)*cos(x)+sin(2*pi()-a)/2*cos(i*x));q = q + y;
endforplot(x,q,'LineWidth',3);
19A_Fourier_3.m
Aplicação prática do Teorema de Fourier
clear all;clc;fs = 10000;t = [0:1/fs:10];f = 20; # Controle de frequencia (2)A = 600;onda_quadra = 0;for i = 1:2:10v = (A/i)*sin(2*pi()*i*f*t);onda_quadra = onda_quadra + v;
endforplot(t,onda_quadra);
22A_Fourier1.m
Conceito de Análise Espectral
Permite determinar pico de frequência em sinaiscomplexos. Podendo plotar gráficos, exibindo picos defrequências não localizados quando uma determinadaamostra é analisada visualmente.
24
Exemplo
fs = Frequência de amostragem.t = Tempo.f(t) = Sinal a ser processado.fft() = Transformada Rápida de Fourier.
29
Exemplo de reconhecimento de frequência
clear all;clc;fs = 1800; #frequencia de amostragemt = [0:1/fs:10];s1 = sin(2*pi()*10*t);m = m_fft(s1,fs,'LineWidth',6);
31A_espectro.m
Normalização Frequênciade Amostragem
function [S,frequencia] = m_fft (s, fs)normal = length(s);aux = 0:normal-1;T = normal/fs;frequencia = aux / T;S = fftn(s)/normal;fc = ceil(normal/2);S = S(1:fc);figure();plot(frequencia(1:fc),abs(S));title("Analise de Espectro");xlabel("Frequencia (Hz)");ylabel("Amplitude");grid on;
endfunction
32m_fft.m
Técnicas de Processamento de Imagens
• Histograma;• Binarização Vetorial (*);• LUT (Look up Table) ;• Gray Level;
35
Histograma
É uma relação que mapeia,para cada valor de intensidadeque um pixel possivelmentepossa ter, o número de vezesem que ela aparece naimagem.
37
Construção do Histograma
O histograma é umatabela de frequência decada valor ou faixa devalores de intensidade nospixels da imagem.
38
Construção do Histograma
1. Dividir o intervalo de dados em classes.2. Contar quantos dados existem em cada classe.
- No caso das imagem usualmente as classes são valores de intensidades presentes.
Imagem de 8 bits = 256 classesImagem de 4 bits = 16 classes
39
Histograma Imagem (Lena)
40
0
1000
2000
3000
4000
5000
6000
1
23
45
67
89
111
133
155
177
199
221
243
0 255
Histograma Imagem (Cone)
41
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
1
25
49
73
97
121
145
169
193
217
241
0 255
Histograma Imagem(Menino)
42
0
5000
10000
15000
20000
1
20
39
58
77
96
115
134
153
172
191
210
229
248
0 255
Calculo Histograma
44
∑=
+=256
0
1k
kkch
h = Valores das somas das intensidades nos pontos da imagem.c = Valor da intensidade em um ponto da Imagem (Cor).k = Coeficiente (índice) de representação das intensidades.
Algoritmo Calculo Histograma1. Obter Im <- (Image)2. Largura L <- (Width)3. Altura A <- (Height)4. Definir h <- [256] posições5. Definir k <- 0 (índice de intensidade)6. Para i de 0 ate L-1 (Largura)7. Para j de 0 ate A-1 (Altura)8. Iv <- Imi,j
9. k <- Intensidade(Iv) 10. h[k] <- h[k] + 111. fim_laço (j)12. fim_laço(i)
45Histog
Conceito de Imagem Binária
Uma Imagem binária , tambémchamada bi-nível, é uma imagemdigital na qual há apenas doisvalores possíveis para cada pixel.(preto-e-branco), P&B.
47
Cardinalidade de pixels na Imagem
P(x,y) = 255 => P’(x,y) = 0P(x,y) = 0 => P’(x,y) = 1
49
Imagem Arquivo
Vetor Binário de uma Imagem
50
0,0-1 1,0-1 2,0-1 3,0-1 4,0-1 5,0-1 6,0-1 7,0-1 8,0-1 9,0-1
303,45-0 304,45-0 305,45-0 306,45-0 307,45-0 308,45-0 309,45-0 310,45-0 311,45-0 312,45-0 313,45-0 314,45-0
P(x,y) – N;Ponto (P) ecoordenadabinária.
Algoritmo de Binarização1. Obter Im <- (Image)2. Largura L <- (Width)3. Altura A <- (Height)4. Para i de 0 ate L5. Para j de 0 ate A6. c <- cor(Im[i,j])7. se(c.pegacorVerm() = 255)8. escrever(i+”,”+j+”-”+”0”)9. senao10. escrever(i+”,”+j+”-”+”1”)11. fim_para12. fim_para
51CarregaImagem.java
LUTÉ uma técnica utilizada no
processamento de imagem, quesignifica "Look up Table". Suafuncionalidade é criar uma tabelade novos valores para imagemtratada.
53
Tabela - LUT
54
jiimcgf
,)( −=
Seja f(g) uma função de inversão linear;c valor de inversão da imagem em tons decinza e im em um ponto P(i,j) valor daintensidade original da imagem.
Im i,j
f(g)=Im’ i,j
Construção do LUT
55
Dada a função de transferência f(g) e o valormáximo de intensidade; A função T(g) criará oLUT.
Tg <- f(g) se 0 ≤ f(g) ≥ 255Tg <- 0 se f(g) < 0Tg <- 255 se f(g) > 255
Algoritmo de LUT
1. Obter Im <- (Image)2. Largura L <- (Width)3. Altura A <- (Height)4. c <- 2565. Para i de 0 ate L6. Para j de 0 ate A7. contraste <- c – Im[i,j]8. novac <- Cor(contraste)9. Im[i,j] <- novac10. fim_para11. fim_para
59CarregaImagem.java
Funcionamento da visão
61
30%
59%
11%
O olho humano trabalha com comprimento de ondas na faixa visívelno intervalo entre 400 à 800 nm possibilitando uma porcentagem decaptação na faixa do vermelho do verde e azul.
ConvertendoPara converter qualquer cor em seu nívelaproximado de cinza, deve-se primeiro obtersuas primitivas vermelho, verde e azul (daescala RGB). Adiciona-se então 30% dovermelho mais 59% do verde mais 11% do azul,independente da escala utilizada (0.0 a 1.0, 0 a255, 0% a 100%.) O nível resultante é o valor decinza desejado. Tais porcentagens estãorelacionadas a própria sensibilidade visual doolho humano convencional para as coresprimárias.
63
Média ponderada das intensidades
Esse tipo de calculo é usado quando não existe omesmo peso para os valores da média.
64
∑= ∑
=k
i i
ii
p
pnMp
0
.
Onde n são os valores da amostra (Imagem) e p pesos em cada faixa de intensidade.
Aplicação na imagem
65
100
11
100
59
100
30bgrgray ++=
Basta aplicar essa equação por toda a matriz da imagem Im[i,j].
Tabela - gray
66
Seja f(g) uma função de conversão depixel todos os elementos da matriz serãoconvertidos para tons de cinza
Im i,j
f(g)=Im’ i,j
100
11
100
59
100
30)( bgrgf ++=
Algoritmo de transformação Gray-Level.
1. Obter Im <- (Image)2. Largura L <- (Width)3. Altura A <- (Height)4. Para i de 0 ate L5. Para j de 0 ate A6. corIm <- Im[i,j].cor()7. verm <- corIm.red() * 0.308. verd <- corIm.green() * 0.599. azul <- corIm.blue() * 0.1110. gray <- verm+verd+azul11. Im[i,j] <- gray
12. fim_para13. fim_para
67Gray – A_Imagem.m