Universidade de São Paulo Instituto de Ciências Matemáticas e...

Post on 02-Jun-2020

1 views 0 download

Transcript of Universidade de São Paulo Instituto de Ciências Matemáticas e...

1

Universidade de São PauloInstituto de Ciências Matemáticas e de Computação

Francisco A. Rodrigues

Departamento de Matemática Aplicada e Estatística - SME

2

Objetivo

• Parametrização de curvas

• Extração de contornos

• Suavização

• Medidas: area, perimetro, descritores de Fourier, dimensao

fractal, simetria

• Curvatura

• Medidas de curvatura: bending energy, etc.

• Filtragem multi-escala

3

Objetivo

• Caracterização de formas

4

Objetivo

• Caracterização de formas

5

Objetivo

• Classificação

6

ParametrizaParametrizaçção de curvasão de curvas

7

Parametrização de curvas

• A posição de uma partícula no plano pode ser

expressada em termos de um vetor posição

Parâmetro da curva

8

Parametrização de curvas

• Exemplo:

9

Parametrização de curvas

• Se a curva for diferenciável, a velocidade

paramétrica de uma partícula:

• Exemplo:

10

Parametrização de curvas

• A velocidade paramétrica corresponde ao vetor

tangente a cada ponto da curva.

• O conjunto de todos os vetores tangentes à curva é

chamado de campo tangente.

11

Parametrização de curvas

• Os vetores de velocidade unitários podem ser

usados para a parametrização por comprimento de

arco:

Comprimento de arco

12

Parametrização de curvas

• Comprimento de arco:

13

Representação paramétrica

14

Representação paramétrica

15

• Exemplos

Representação paramétrica

16

• Exemplos

Representação paramétrica

17

• A segunda derivada da curva parametrizada resulta

na aceleração:

Curvatura

18

• No caso do campo unitário tangente

a aceleração tangente é zero e a aceleração radial

expressa a mudança de orientação do campo

tangente:

Curvatura

19

Curvatura

• A magnitude da segunda derivada da curva

parametrizada é a curvatura da curva em t:

20

Curvatura

• Exemplo: O sinal da curvatura depende do sentido:

21

AplicaAplicaçção em imagensão em imagens

22

Extração do contorno

• Algoritmo

23

Extração do contorno

• Algoritmo

24

Extração do contorno

• Algoritmo

25

Extração do contorno

• Matlab:

clear;

close all;

figura = 'boy.bmp';

I = imread(figura);

imshow(I);

%threshold: binariza a imagem

T = mean(mean(I));

a=find(I < T);

b=find(I >= T);

I(a) = 0;

I(b) = 255;

figure;

imshow(I);

[x,y] = ceguinho(I);figure;

plot(x,y);

26

Medidas morfológicas

• Perímetro

• Área

• Diâmetro

• Centro de massa

• distância média até a borda

• comprimento de arco máximo

• Maior e menor eixos

• Momentos estatísticos

• Simetria

• Assinaturas

• Dimensão fractal

27

Medidas morfológicas

• Perímetro

28

Medidas morfológicas

• Área

29

Medidas morfológicas

• Centro de massa

30

Medidas morfológicas

• Centro de massa

31

Medidas morfológicas

• Centro de massa

32

Medidas morfológicas

•Diâmetro

33

Medidas morfológicas

•Diâmetro

34

Medidas morfológicas

• Maior e menor eixos

35

Medidas morfológicas

• Maior e menor eixos

OBS: PCA no Matlab: princomp

36

Medidas morfológicas

• Enlogation: x e y são os vetores paramétricos

• Matriz de covariância:

• λ1 e λ2 são o maior e menor autovalor da matriz de

covariância

37

Medidas morfológicas

• Momentos estatísticos:

• Seja g o vetor que armazena a forma de um objeto.

• Então, os momentos centrais em 2D

• São invariantes à translação.

38

Medidas morfológicas

• Simetria

• Buracos na imagem devem ser preenchidos e então

a imagem é refletida e somada com a original.

• Logo, a imagem terá pixels com valores 0, 1 e 2.

• A simetria é calculada pela razão entre o número

pixels com valor 2 e os pixels com valor 1.

39

Medidas morfológicas

• Simetria

40

Medidas morfológicas

• Simetria

41

Medidas morfológicas

• Assinaturas

Centro

De massa

42

Medidas morfológicas

•Descritores de Fourier: O contorno pode ser

escrito na forma:

• A transformada discreta de Fourier de s(k):

• Os coeficientes complexos a(u) são os descritores de

Fourier do contorno.

• A transformada inversa:

k=0,1,2,...,K-1

u=0,1,2,...,K-1

43

Medidas morfológicas

•Descritores de Fourier:

44

Medidas morfológicas

•Descritores de Fourier:

• Vantagens:

• Pré-processamento apropriado faz com que os descritores sejam:

• não sensível a rotação, translação e mudanças de escala.

• não depende da ordem em que os pontos são processados.

• não depende da posição inicial em que o contorno é processado.

45

Medidas morfológicas

•Descritores de Fourier:

• Propriedades:

46

Medidas morfológicas

•Descritores de Fourier:

• Vantagens: Podem ser usados para classificação:

47

Medidas morfológicas

• Dimensão fractal

48

Medidas morfológicas

• Dimensão fractal

49

Medidas morfológicas

• Dimensão fractal

Tamanho das caixas

Número de caixas

contendo o objeto

50

SuavizaSuavizaçção de contornoão de contorno

51

• Transformada de Fourier em 1D:

Transformada de Fourier

52

• Propriedades da transformada de Fourier:

• Delta de Dirac:

• Gaussiana:

• Simetria:

Transformada de Fourier

53

• Propriedades da transformada de Fourier:

• Deslocamento no tempo:

• Escala no tempo:

• Deslocamento na frequência:

• Escala na frequência:

Transformada de Fourier

54

• Propriedades da transformada de Fourier:

• Teorema da Convolução:

Transformada de Fourier

55

• Propriedades da transformada de Fourier:

• Derivada:

Transformada de Fourier

56

• Filtragem na frequência:

Filtragem

57

• Filtro passa altas:

σ=0,25

Filtragem

58

• Filtro passa altas:

Filtragem

59

• Filtro passa altas:

Filtragem

60

• Filtro passa baixas:

Filtragem

61

Filtragem

function a = filtro(sigma,z,x)

% Transformada de fourier de z

y = fftshift(z);

Y = fft(y);

M = size(x);

N = M(1,2);

ts = ( x(1,N) - x(1,1) )/N;

df = 1.0/(ts*N);

N2 = floor(N/2);

N1 = N - 1;

s = -N2:(N1-N2);

X = s*df;

% Funcao filtro

GAU = exp(-( (X.^2)/(sigma^2) )/2 );

GAU = fftshift(GAU);

% Transformada inversa do sinal

transformado filtrado

A = ( GAU.*Y );

a = ifft(A);

a = real(fftunshift(a));

• Filtro passa baixas:

62

Filtragem multi-escala

σ=2 σ=1

σ=5

63

Filtragem multi-escala

σ=0,2 σ=0,05

σ=0,5

64

Filtragem multi-escala

σ

65

Filtragem multi-escala

clear;

sigma = 0.1; %desvio padrao da gaussiana que filtrara a funcao

m=10;

dt = 0.001; %define o intervalo de tempo da funcao

t = 0:dt:m; %define o limite de tempo

f = (sin(1.45*t).*cos(0.3*t+ 10).*sin(0.1*t +

5)+0.1*sin(23.2*t).*sin(2.3*t).*cos(12.1*t + 10)).*sin(t);

figure(1)

plot(t,f); %funcao com ruido

% Funcao filtro

F = filtro(sigma,f,t); %faz a filtragem da funcao

figure(2) %funcao filtrada

plot(t,F);

...

66

%analise multi-escala

%faz a filtragem de uma funcao mostrando a funcao obtida em

%funcao da variacao do desvio padrao sigma

clear;

[sigma,t] = meshgrid(1:-0.01:0,10:-0.1:0); %define a superficie onde a funcao sera

plotada

f = (sin(1.45*t).*cos(0.3*t+ 10).*sin(0.1*t + 5) +0.1*sin(23.2*t).*sin(2.3*t).*cos(12.1*t

+ 10)).*sin(t);

n = size(sigma);%tamanho do vetor sigma

n = n(1,2);

for i=1:n

Z(:,i) = (filtro(sigma(1,i),f(:,1)',t(:,1)'))'; %aplica a filtragem para cada sigma

end

figure(3);

surf(sigma,t,real(Z)); %plota a funcao em 3 dimensoes

colormap hsv;

camlight left;

lighting phong;

view(80,30);tilte('Filtragem da funcao f');

Filtragem multi-escala

67

Suavização do contorno:

Filtragem multi-escala

68

Suavização do contorno:

Filtragem multi-escala

69

CCáálculo Numlculo Numéérico da rico da

curvaturacurvatura

70

Curvatura

• Cálculo numérico da curvatura:

% Primeira derivada

sigma = 10;

dx = derivada(sigma,x,t);

dy = derivada(sigma,y,t);

% Segunda derivada

d2x = derivada(sigma,dx,t);

d2y = derivada(sigma,dy,t);

% Calculo da curvatura k

k = ( dx.*d2y - dy.*d2x )./( dx.^2 + dy.^2 ).^(3/2)

71

function dy = derivada(sigma,z,x)

% Transformada de fourier de z

y = fftshift(z);

Y = fft(y);

M = size(x);

N = M(1,2);

ts = ( x(1,N) - x(1,1) )/N;

df = 1.0/(ts*N);

N2 = floor(N/2);

N1 = N - 1;

s = -N2:(N1-N2);

X = s*df;

% Funcao filtro

GAU = exp(-( (X.^2)/(sigma^2) )/2 );

GAU = fftshift(GAU);

% Transformada inversa do sinal

transformado filtrado

A = ( GAU.*Y );

% Funcao derivadaDER = 2*pi*j*X;DER = fftshift(DER);

% Calculo da derivada

DY = A.*DER;

dy = ifft(DY);

dy = fftunshift(real(dy));

Curvatura

• Cálculo numérico da curvatura:

72

Exemplo:

Curvatura

73

Exemplo:

Curvatura

74

• Histograma

• Número de picos de curvatura

Medidas relacionadas à curvatura

Nessa caso, foram

consideradas

10 caixas no histograma

75

• Bending energy

• Quantifica o nível de energia armazenada no

contorno. Quanto maior o valor de B, mais complexa

é o contorno de um objeto.

Medidas relacionadas à curvatura

76

• Exemplo:

Curvatura

77

Curvatura

• Exemplo

78

Curvatura

• Exemplo

79

• Outras técnicas de análise morfolófica:

• Transformada distância

• Esqueletização multi-escala

Curvatura

80

• Shape analysis and Classification, L. da F. Costa e

R. M. Cesar Jr. CRC Press, 2001.

• Gonzalez e Woods, Processamento digital de

imagens, 3ª edição.

Bibliografia

81

• Implemente um programa que realize as seguintes

tarefas:

• Extraia o contorno de uma imagem.

• Suavize o contorno de acordo com um parâmetro σ.

• Calcule o perímetro, área, diâmetro, centro de massa da

imagem e os descritores de Fourier.

• Calcule a curvatura da imagem, o número de picos de

curvatura, e a medida bending energy.

Projeto