没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
《数字图像处理》
实验报告
数字图像处理
实验代码:Matlab/python
实验一 图像增强—空域滤波
一、实验内容与步骤
a) 调入并显示原始图像。
b) 在图像上加入高斯(gaussian) 噪声、椒盐噪声。
c)利用预定义函数产生均值滤波器
d)分别采用 3x3,5x5 和 7x7 的模板,分别用均值滤波器以及中值滤波器,对加入噪
声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;
e)选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述
滤波器处理的结果。
h)输出全部结果并进行讨论和分析不同的噪声以及不同模板对滤波结果的影响。
二、实验结果与源代码
源代码:
拓展代码
改变椒盐噪声大小,查看结果
%模块二:加椒盐噪声
x=imread('2019217904dxy2.jpg');
subplot(1,2,1),imshow(x),title('原图');
x1=imnoise(x,'salt & pepper',0.1);
subplot(1,2,2),imshow(x1),title('加入噪声密度:0.1 的椒盐噪声');
x2=imnoise(x,'salt & pepper',0.2);
gure,subplot(1,2,1),imshow(x2),title('加入噪声密度:0.2 的椒盐噪声');
x3=imnoise(x,'salt & pepper',0.3);
subplot(1,2,2),imshow(x3),title('加入噪声密度:0.3 的椒盐噪声');
优化算法
%模块三:均值滤波器
x=imread('1.jpg');%需要过滤的图像
n=7; %模板大小
[height, width]=size(x); %获取图像的尺寸(n小于图片的宽高)
figure;
imshow(x);%显示原图
% x = padarray(x,[5,5]); %对图像边缘进行填充
x=imnoise(x,'salt & pepper',0.3);%加入椒盐噪声
figure;
imshow(x),title('加入噪声密度:0.3的椒盐噪声');
x1=double(x); %数据类型转换
x2=x1; %转换后的数据赋给x2
for i=1:height-n+1
for j=1:width-n+1
c=x1(i:i+(n-1),j:j+(n-1)); %在x1中从头取模板大小的块赋给c
e=c(1,:); %e中存放是c矩阵的第一行
for u=2:n %将c中的其他行元素取出来接在e后使e为一个行矩阵
e=[e,c(u,:)];
end
s=sum(e); %取一行的和
x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n); %将模板各元素的均值赋给模板中心位置的元素
end
end
d=uint8(x2); %未被赋值的元素取原值
figure;
imshow(d);title('加入噪声密度:0.3的椒盐噪声7x7均值过滤后的彩色图片') %显示过滤图片
C=rgb2gray(x); %灰度处理,灰度处理后的图像是二维矩阵
A=fspecial('average',[n,n]); %matlab中自带值滤波函数
b=imfilter(C,A);
figure;
imshow(b),title('加入噪声密度:0.3的椒盐噪声7x7均值过滤后的灰度图片');%显示过滤后的
灰度图片
x=imread(1.jpg');%需要过滤的图像
n=3; %模板大小
[height, width]=size(x); %获取图像的尺寸(n小于图片的宽高)
figure;
%模块二:加椒盐噪码
x=imnoise(x,'salt & pepper',0.1);
imshow(x),title('加入噪声密度:0.1的椒盐噪声');
figure;
x1=double(x); %数据类型转换
x2=x1; %转换后的数据赋给x2
for i=1:height-n+1
for j=1:width-n+1
c=x1(i:i+(n-1),j:j+(n-1)); %在x1中从头取模板大小的块赋给c
e=c(1,:); %e中存放是c矩阵的第一行
for u=2:n %将c中的其他行元素取出来接在e后使e为一个行矩阵
e=[e,c(u,:)];
end
med=median(e); %取一行的中值
x2(i+(n-1)/2,j+(n-1)/2)=med; %将模板各元素的中值赋给模板中心位置的元素
end
end
d=uint8(x2); %未被赋值的元素取原值
figure;
imshow(d),title('加入噪声密度:0.1的椒盐噪声经3x3中值滤波后的彩图'); %显示过滤图片
x0=rgb2gray(x); %灰度处理,灰度处理后的图像是二维矩阵
b=medfilt2(x0,[n,n]); %matlab中自带值滤波函数
figure;
imshow(b),title('加入噪声密度:0.1的椒盐噪声经3x3中值滤波后的灰度图'); %显示过滤后的
灰度图片
实验结果:
剩余20页未读,继续阅读
资源评论
- YZB_YYDS2022-11-09资源很不错,内容和描述一致,值得借鉴,赶紧学起来!
- dzz123466272023-02-14非常有用的资源,可以直接使用,对我很有用,果断支持!
- 2301_768844202023-06-25资源内容详细全面,与描述一致,对我很有用,有一定的使用价值。
我爱learning
- 粉丝: 2
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功