【问题标题】:2D Discrete Fourier Transform and Inverse DFT in matlabmatlab中的二维离散傅里叶变换和逆DFT
【发布时间】:2018-10-05 11:47:53
【问题描述】:

我目前在 matlab 中为图像实现 2D DFT 和 IDFT,而不使用内置库。我在 DFT 后成功输出了光谱图像,但在 IDFT 后我无法取回原始图像。 这是我的 DFT 代码

input = im2double(img_input);
[M, N] = size(input);
Wm = zeros(M, M);
Wn = zeros(N, N);

for x = 1:M-1
    for y = 1:N-1
        input(x, y) = input(x, y) * (-1)^(x + y);
    end
end

for u = 0:M-1
    for x = 0:M-1
        Wm(u+1, x+1) = exp(-li * pi * 2 * u * x/ M);
    end    
end

for v = 0:N-1
    for y = 0:N-1
        Wn(v+1, y+1) = exp(-li * pi * 2 * v * y / N);
    end    
end
F = Wm * input * Wn / 200;
output = im2uint8(log(1 + abs(F)));

IDFT:

[M, N] = size(input);
Wm = zeros(M, M);
Wn = zeros(N, N);

for x = 0:M-1
    for u = 0:M-1
        Wm(x+1, u+1) = exp(2 * pi * 1i * u * x/ M);
    end    
end

for y = 0:N-1
    for v = 0:N-1
        Wn(y+1, v+1) = exp(2 * pi * 1i * v * y / N);
    end
end

f = Wm * input * Wn;

for x = 1:M-1
    for y = 1:N-1
        f(x, y) = f(x, y) * (-1)^(x + y);
    end
end

output = im2uint8(abs(f));

我将输入乘以 (-1)^(x+y) 以移动坐标原点。我不知道为什么在对 DFTed 图像执行 IDFT 后无法取回原始图像。

Original Image

Image after DFT

Image after IDFT

【问题讨论】:

    标签: matlab dft


    【解决方案1】:

    您的代码运行良好。为了使第二个函数的 output 与第一个函数的 img_input 相同,我必须进行以下更改:

    第一个功能:

    F = Wm * input * Wn;                % Don't divide by 200 here.
    output = im2uint8(log(1 + abs(F))); % Skip this line altogether
    

    第二个函数:确保将第一个函数中的F 用作此处的input

    f = Wm * input * Wn / N / M;        % Divide by N*M, proper normalization
    

    请注意,归一化通常放入 IDFT 中,但如果您愿意,也可以将其放入 DFT 中。但是,按 200 归一化是不正确的。

    【讨论】:

    • 感谢您的评论。现在我将我的 DFT 代码更改为不除以 200 并输出 im2uint8(abs(F))。然后,我也按照您的建议更改了 IDFT 的代码,并再次输出 im2uint8(abs(f)) 。但是,这次我的 IDFT 输出全是黑色的。我仍然无法获得原始图像。
    • 我想我已经明白了。非常感谢您的建议。
    • @Nighost:是的,如果你丢弃所有相位信息并舍弃这么多相关数据,你将无法重建原始图像。 logabs 仅用于显示,始终保留 DFT 中的完整浮点复数数据以计算逆。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多