e-mail : [email protected] Prof. Responsáveis Wagner ... · Funcionamento da visão 61 30% 59%...

68
Disciplina Processamento de Sinais Curso 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áveis Wagner Santos C. de Jesus

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

Atenuação deSinais

2

Parâmetros de atenuação

3

)sin()( / tAeyf t ϖτ−=

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

Conceito da série de Fourier

5

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

Conversão de um sinal senoidal em onda em

onda Quadrada

8

Aplicação Teorema de Fourier

9

Exemplo

10

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

A função f(t) será aproximada

12

Aproximação de uma função retangular por séries de senos

13

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

Série Fourier para representação de

variação Brusca de Amplitude

(Densidade Espectral)17

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

Usando o Teorema de Fourier para representar

funções quadradas

20

Composição de uma onda Quadrada

21

+

++

++

++= ...7

)5sin(5

)3sin(3

)sin( 0000

AtA

At

AtAAv ωωω

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

Analise Espectrográfica

23

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

Coeficiente espectral

25

Análise Espectral de Sinais Contínuos no Tempo

26

Sinais Contínuos e periódicos

27

Considere o sinal abaixo

28

Frequência de amostragem

Exemplo

fs = Frequência de amostragem.t = Tempo.f(t) = Sinal a ser processado.fft() = Transformada Rápida de Fourier.

29

Exemplo Prático

Dado o sinal representados abaixo:

30

)2sin(

10:1

;0

1800

ts

fst

fs

π=

=

=

Sinal

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

Aplicação Prática de Processamento de

Sinais

33

Técnicas Básicas de Processamento de

Imagens Monocromáticas

34

Técnicas de Processamento de Imagens

• Histograma;• Binarização Vetorial (*);• LUT (Look up Table) ;• Gray Level;

35

Imagem Ampliada 80%

36

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

Implementação de Algoritmo para calculo

de Histograma

43

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

Binarização Vetorialde Imagens

46

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

Exemplo Matemático

48

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

Look up Table(Olhe para cima

Tabela)

52

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

Tg <- 0 se f(g) < 0

56

jiimcgf

,)( −=

C = 0

Tg <- f(g) se 0 ≤ f(g) ≥ 255

57

jiimcgf

,)( −=

C = 80

Tg <- 255 se f(g) > 255

58

jiimcgf

,)( −=

C = 256

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

Imagens Gray Level

(Nível de cinza)

60

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.

Convertendo imagens coloridas em monocromáticas

(Tons de cinza)

62

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

Converte Imagem para Tonsde Cinza

clear all;clc;pkg load image;imagem = imread('tigre.jpg');I = rgb2gray(imagem);imshow(I);

68