Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于MATLAB的图像包络相位_Matlab_Unwrap_Fringe - Fatal编程技术网

基于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(:)

我正试图解开干涉仪上的干涉图。然而,第一步是包裹相位,因为我刚刚得到一张图像(强度)。我无法发布图像,但它是带有一些噪音的同心环。我遵循武田论文中的步骤,基本上是:

  • 汉宁窗
  • 快速傅里叶变换
  • 巴特沃斯滤波器
  • IFFT
  • 第一个问题是,第三步应该应用于FFT的一阶频率,但MATLAB只给出了FFT的0阶

    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));请编辑您的原始帖子以添加代码,它在评论部分不清晰。