基于MATLAB的图像包络相位
我正试图解开干涉仪上的干涉图。然而,第一步是包裹相位,因为我刚刚得到一张图像(强度)。我无法发布图像,但它是带有一些噪音的同心环。我遵循武田论文中的步骤,基本上是:基于MATLAB的图像包络相位,matlab,unwrap,fringe,Matlab,Unwrap,Fringe,我正试图解开干涉仪上的干涉图。然而,第一步是包裹相位,因为我刚刚得到一张图像(强度)。我无法发布图像,但它是带有一些噪音的同心环。我遵循武田论文中的步骤,基本上是: 汉宁窗 快速傅里叶变换 巴特沃斯滤波器 IFFT 第一个问题是,第三步应该应用于FFT的一阶频率,但MATLAB只给出了FFT的0阶 clear all I3=im2double(imread('Int4.bmp')); N=1024; w=hann(N); % hanning window m1 = w(:)
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)) ;
如有任何建议或意见,我将不胜感激
非常感谢 如果您不能共享真实代码/数据,请提供仍然复制您的问题的假代码/数据。这是我拥有的代码。我正在使用一个名为Int4的bmp图像,但是如果您想尝试,可以调用任何其他图像。感谢您的帮助。清除所有I3=im2double(imread('Int4.bmp');N=1024;w=hann(N);%汉宁窗m1=w(:)*w(:).;%创建二维窗口I1=I3(:,129:1152)。*m1;D=FFT移位(fft2(FFT移位(I1));%,2048,2048)); % 创建巴特沃斯过滤器:nx=512;ny=512;d1=10;fftI=D(1:1023,1:1023);n=2;过滤器3=个(2*nx-1,2*ny-1);对于i=1:2*nx-1对于j=1:2*ny-1 dist=((i-(nx+1))^2+(j-(ny+1))^2)^.5;过滤器3(i,j)=(1/(1+(dist/d1)^(2*n)).*过滤器3(i,j);终止结束;%用传递的频率更新图像。过滤的_图像=ifftshift(ifft2(ifftshift(filter3.*fftI),N-1,N-1));请编辑您的原始帖子以添加代码,它在评论部分不清晰。