Фаза обтекания из изображения MATLAB
Я пытаюсь развернуть интерференционную картину, которую я получил от интерферометра. Тем не менее, первым шагом будет завершение фазы, потому что я только что получил изображение (интенсивность). Я не могу опубликовать изображение, но это концентрические кольца с некоторым шумом. Я следовал за шагами из газеты Такэда, которые в основном:
- Окно Ханнинга
- FFT
- Фильтр Баттерворта
- 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)) ;
Буду признателен за любые предложения или комментарии.
Большое спасибо!!