2021-10-27数字图像处理上机

clc;clear all
S0 = imread('flower256.png'); 
h = ones(5)./25; 
Q1=filter2(h,S0);             %注意这里是double型,如果直接imshow就会一片白>1
Q1=uint8(Q1);                 %imshow(Q1);
Q2=conv2(double(S0),h);       %256+5-1,要取最前面的
Q2=uint8(Q2(1:256,1:256));
FS0=fftshift(fft2(S0));
mFS0=log(abs(FS0)+1);         %要做对数,不然很黑%figure;imshow(mFS0./max(max(mFS0)));
h1=zeros(256,256);
h1(1:5,1:5)=h;
FH1=fftshift(fft2(h1));
mFH1=log(abs(FH1)+1);         %figure;imshow(mFH1./max(max(mFH1)));
FQ3=FS0.*FH1;
Q3=uint8(real(ifft2(fftshift(FQ3))));%可能有复数
S0e=zeros(256+5-1,260);
S0e(1:256,1:256)=S0;%扩大到了
he=zeros(260,260);
he(1:5,1:5)=h;
hes=circshift(he,[-2,-2]);%用模板中心位置与左上角对齐,不然结果就会有移动,模板下一个周期移进来了
Q3e=uint8(real(ifft2((fft2(S0e).*fft2(he)))));
Q3e=Q3e(1:256,1:256);
Qe3=uint8(real(ifft2((fft2(S0e).*fft2(hes)))));
Qe3=Qe3(1:256,1:256);
subplot(2,2,1); imshow(S0); 
subplot(2,2,2); imshow(Q1); 
subplot(2,2,3); imshow(Q2); 
subplot(2,2,4); imshow(Q3e);
%边界效应,周期延拓
%fft->ifft等效于周期延拓的卷积,数据的折叠效应,需要把原始图像右侧加零--长度恰好等于卷积核列数少一
%卷积核翻到外面,如果有数据累加的值会变大,如果是0累加的值很小,直到卷积核全进来值才差不多

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值