matlab求线性卷积画图,使用fft2在Matlab中对两个图像进行线性卷积

如果没有填充,结果将等同于循环卷积,如您所指出的那样.对于线性卷积,在卷积2个图像(2D信号)A * B时,完整输出的大小为Ma Mb-1×Na Nb-1,其中Ma x Na,Mb x Nb是图像A和B的大小.

填充到预期大小后,通过ifft2进行乘法和变换,可以保留结果图像的中心部分(通常对应于A和B中最大的一个).

A = double(imread('cameraman.tif'))./255; % image

B = fspecial('gaussian', [15 15], 2); % some 2D filter function

[m,n] = size(A);

[mb,nb] = size(B);

% output size

mm = m + mb - 1;

nn = n + nb - 1;

% pad, multiply and transform back

C = ifft2(fft2(A,mm,nn).* fft2(B,mm,nn));

% padding constants (for output of size == size(A))

padC_m = ceil((mb-1)./2);

padC_n = ceil((nb-1)./2);

% frequency-domain convolution result

D = C(padC_m+1:m+padC_m, padC_n+1:n+padC_n);

figure; imshow(D,[]);

现在,使用conv2D将上述内容与空间域卷积进行比较

% space-domain convolution result

F = conv2(A,B,'same');

figure; imshow(F,[]);

结果在视觉上是相同的,并且两者之间的总误差(由于四舍五入)在e-10的量级上.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值