Фаза обтекания из изображения MATLAB

Я пытаюсь развернуть интерференционную картину, которую я получил от интерферометра. Тем не менее, первым шагом будет завершение фазы, потому что я только что получил изображение (интенсивность). Я не могу опубликовать изображение, но это концентрические кольца с некоторым шумом. Я следовал за шагами из газеты Такэда, которые в основном:

  1. Окно Ханнинга
  2. FFT
  3. Фильтр Баттерворта
  4. IFFT

Первая проблема заключается в том, что третий шаг должен применяться к первому частотному порядку БПФ, но MATLAB дает мне только нулевой порядок в БПФ.

clear all

I3=im2double(imread('Int4.bmp'));
N=1024;
w=hann(N);          % hanning window 
m1 = w(:)*w(:).' ;  %' Create 2D window 
I1=I3(:,129:1152).*m1; 
D = fftshift(fft2(fftshift(I1)));%,2048,2048)); 

% Create Butterworth filter: 
nx=512; ny=512; d1=10; 
fftI=D(1:1023,1:1023); 
n=2; 
filter3 = ones(2*nx-1,2*ny-1); 

for i = 1:2*nx-1 
    for j =1:2*ny-1 
        dist = ((i-(nx+1))^2 + (j-(ny+1))^2)^.5; 
        filter3(i,j) = (1/(1 + (dist/d1)^(2*n))).*filter3(i,j); 
    end
end

% Update image with passed frequencies. 
filtered_image = ifftshift(ifft2(ifftshift(filter3.*fftI),N-1,N-1)) ;

Буду признателен за любые предложения или комментарии.

Большое спасибо!!

0 ответов

Другие вопросы по тегам