Bonjour à tous,

Dans le cadre de mon stage, je dois étudier la houle par images satellites. Cependant, je rencontre quelques difficultés dans le processus de traitement des images sur MATLAB. Ce dernier consiste à calculer la transformée bidimensionnelle de l’image pour ensuite déterminer le spectre du nombre d’onde et les nombres d’ondes kx et ky. L’étude de ce spectre devrait ensuite m’aider à calculer des paramètres liés aux houles.

Ma première interrogation concerne la formule exacte permettant de calculer les nombres d’ondes kx et ky car j’hésite entre deux méthodes (voir script). Ensuite je souhaiterai savoir comment je pourrai procéder pour représenter graphiquement le spectre du nombre d’onde (WNS) et en extraire son pic d’intensité.

Voilà je ne sais pas si j’ai été très clair et espère que quelqu’un pourra m’aider

Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
A = imread(‘img’);
B = imresize(A, [200 200]);
 
gray_img=rgb2gray(B);
ilevel_img=mat2gray(gray_img);
 
fft_2D_img=fft2(ilevel_img);
fft_shift = fftshift(fft_2D_img);
imagesc(log(abs(fft_shift+1)));
 
 %% * Calcul de kx et ky: Deux méthodes de calcul (R,r = row et C,c = column)
%==========================================================================
% Méthode 1
C=200;R=200;
dx = 1; 
dy = 1; 
%Characteristic wavelengths 
KX0 = (mod(1/2 + (0: (C-1))/C , 1) - 1/2); 
KX1 = KX0 * (2*pi/dx); 
KY0 = (mod(1/2 + (0: (R-1))/R , 1) - 1/2); 
KY1 = KY0 * (2*pi/dy); 
[KX,KY] = meshgrid(KX1,KY1);
K = sqrt( KX.^2 + KY.^2 );
%==========================================================================
% Méthode 2
c=200;r=200;
dx=1;dy=1;
kxmax = 1/( 2*dx );
kx = linspace(-kxmax,kxmax,c);
kymax = 1/( 2*dy );
ky = linspace(-kymax,kymax,r);
[Kx,Ky] = meshgrid(kx,ky);
k = sqrt( Kx.^2 + Ky.^2 );
 
 
% wavenumber spectrum S(kx,ky)
WNS_banc = fft_2D_img^2;