不采用MATLAB函数,实现对一幅真彩色图像的高斯滤波。

clc;clear;close all;
I=imread(‘hua.jpg’);
[N,M,C]=size(I);
subplot(1,3,1);
imshow(I),title(‘原图’);
NoiseI=imnoise(I,‘gaussian’);%添加高斯噪声
subplot(1,3,2);
imshow(NoiseI),title(‘添加高斯噪声后’);
sigma=10;
r=3;
Newr=2r+1;%取奇数
H=zeros(Newr,Newr);
sum=0;
for i=1:Newr
for j=1:Newr
zhishu=double(-((i-r-1)2+(j-r-1)2)/(2
sigmasigma));
H(i,j)=(exp(zhishu))/(2
pisigmasigma);
sum=sum+H(i,j);
end
end
H=H/sum;%归一化处理
NewImage=zeros(N+2r,M+2r,C);
for k=1:C
for i=1:N
for j=1:M
NewImage(i+r,j+r,k)=NoiseI(i,j,k);%将原图周围置0
end
end
end
Change=zeros(N,M,C);
for k=1:C
for i=1+r:N+r
for j=1+r:M+r
change=0;
for m=1:Newr
for n=1:Newr
change=change+(NewImage(i-r+m-1,j-r+n-1,k)*H(m,n));
end
end
Change(i-r,j-r,k)=change;
end
end
end
subplot(1,3,3);
Change=uint8(Change);
imshow(Change),title(‘高斯滤波后图像’);
老师布置的题目,记录一下。
四层嵌套运算量有点多,程序运行太慢了。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值