【问题标题】:zero padding zoom fourier零填充缩放傅里叶
【发布时间】:2017-02-02 11:00:19
【问题描述】:

我正在尝试使用傅立叶实现零填充缩放。 我正在使用八度音阶,我不能在我的矩阵周围添加零。 结果(逆傅立叶变换后)非常暗。

我的目标:

我的代码:

I=double(imread('montagne.jpeg'));
I = I/255;
%%scaling factor
facteur = 4;
[m,n,r] = size(I);
H=fft2(I);
H = fftshift(H);
%%the new image
B = zeros(facteur*m,facteur*n,3);
%%try to add zeros around my matrix
%% r : rgb channels
for r=1:3
  for i=1:m
    for j=1:n
      B(i+((facteur*m)/4),j+((facteur*n)/4),r) = H(i,j,r);
    end
 end
end

%% show the image
B= ifftshift(B);
final = ifft2(B);
figure;
imshow(final);

有什么建议吗?

【问题讨论】:

    标签: image matlab image-processing octave


    【解决方案1】:

    不要使用 for 循环来复制矩阵。我会尝试类似:

    I = im2double (imread ('IMG_2793.JPG'));
    facteur = 4; %%scaling factor
    [m, n, r] = size (I);
    H = fftshift (fft2 (I));
    B = zeros(facteur*m, facteur*n, 3);
    
    ms = round (m * (facteur/2 - 0.5));
    ns = round (n * (facteur/2 - 0.5));
    
    B(ms:(m+ms-1), ns:(n+ns-1), :) = H;
    final = abs (ifft2 (ifftshift (B)));
    figure;
    imshow(final * facteur^2);
    

    编辑:

    顺便说一句,还有 padarray 功能可以满足您的需求:

    octave:1> padarray (magic(3), [1, 1])
    ans =
    
       0   0   0   0   0
       0   8   1   6   0
       0   3   5   7   0
       0   4   9   2   0
       0   0   0   0   0
    

    【讨论】:

    • 我试过了,但它不起作用......图像仍然很暗,如果我添加“facteur^2”,它就太亮了。
    • 我也试过了,效果很好。所以也许你必须上传你的图片或自己调整因素
    猜你喜欢
    • 2019-03-05
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    相关资源
    最近更新 更多