universidade de são paulo instituto de ciências matemáticas e...
TRANSCRIPT
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