北科大数字图像处理实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京科技大学计算机与通信工程学院
实验报告
实验名称:《数字图像处理》课程实验
****:***
专业:计算机科学与技术
班级:计1304
学号:********
****:***
实验成绩:
实验时间:2016 年12 月15 日
一、实验目的与实验要求
1、实验目的
1. 熟悉图像高斯、脉冲等噪声的特点,以及其对图像的影响;
2. 理解图像去噪算法原理, 并能编程实现基本的图像去噪算法, 达到改善图像质量的效果, 并能对算法性能进行简单的评价。
3. 理解图像分割算法的原理,并能编程实现基本的灰度图像分割算法,并显示图像分割结果。
2、实验要求
1. 对于给定的两幅噪声图像(test1.jpg, test
2.jpg), 设计或选择至少两种图像滤波算法对图像进行去噪。
2. 利用给出的参考图像(org1.jpg, org2.jpg), 对不同算法进行性能分析比较。
3. 对于给定的两幅数字图像(test.jpg,test
4.jpg),将其转换为灰度图像,设计或选择至少两种图像分割算法对图像进行分割,用适当的方式显示分割结果,并对不同算法进行性能分析比较。
二、实验设备(环境)及要求
1. Mac/Windows计算机
2. Matlab编程环境。
三、实验内容与步骤
1、实验1
(1)实验内容
1. 对于给定的两幅噪声图像(test1.jpg, test
2.jpg), 设计或选择至少两种图像滤波算法对图像进行去噪。
2. 利用给出的参考图像(org1.jpg, org2.jpg), 对不同算法进行性能分析比较。(2)主要步骤
1. 打开Matlab 编程环境;
2. 利用’imread’函数读入包含噪声的原始图像数据;
3. 利用’imshow’函数显示所读入的图像数据;
结果显示:
4. 编码实现图像滤波算法,对原始噪声图像进行滤波处理;
分别用均值滤波,中值滤波和维纳滤波如下:
代码:
J=imread('test1.jpg');
%h=ones(4,4)/16;%产生4*4的全1数组
%B=conv2(J,h);%卷积运算
K2=filter2(fspecial('average',4),J)/255; %均值滤波模版尺寸为4 K= medfilt2(J);%采用二维中值滤波函数进行滤波
K1=wiener2(J,[4 4]); %对噪声图像进行二维自适应维纳滤波subplot(2,2,1);imshow(J);
title('加噪图像');
subplot(2,2,2);imshow(K2);
title('均值滤波后的图像');
subplot(2,2,3);imshow(K);
title('中值滤波后的图像');
subplot(2,2,4);imshow(K1);
title('维纳滤波后的图像');
imwrite(K2,'均值滤波图像.jpg','quality',100);
imwrite(K,'中值滤波图像.jpg','quality',100);
imwrite(K1,'维纳滤波图像.jpg','quality',100);
处理结果如下:
细节如下:
原始图像均值滤波
中值滤波维纳滤波:对图像二的处理结果:
原始图像均值滤波
中值滤波维纳滤波
5. 计算滤波后图像与原图的差异(如PSNR、MSE 等); J=imread('test1.jpg');
J2=imread('org1.jpg');
%h=ones(4,4)/16;
%B=conv2(J,h);
K2=filter2(fspecial('average',4),J)/255; %均值滤波K= medfilt2(J);% 采用二维中值滤波函数进行滤波
%计算均值滤波后图像对比对照图像的PMSE和PSNR
diff1=(double(J2)-(K2)).^2;
mse1=mean(diff1(:));
psnr1=double(10*log10(255^2/mse1));
%计算中值滤波后图像对比对照图像的PMSE和PSNR
M=double(K);
diff2=(double(J2)-(M)).^2;
mse2=mean(diff2(:));
psnr2=double(10*log10(255^2/mse2));
结果:
对于test1.jpg
均值滤波:MSE=1.6391e+04,PSNR=5.9848
中值滤波:MSE=251.4171,PSNR=24.1269
对于test2.jpg
均值滤波:MSE=1.7382e+04,PSNR=5.7550
中值滤波:MSE=31.1728,PSNR=33.1931
实验2
(1)实验内容
对图像进行分割并显示。
(2)主要步骤
1. 打开Matlab编程环境。
2. 利用‘imread’函数读入包含噪声的原始图像数据。
>> I=imread('test3.jpg');
3. 利用‘imshow’函数显示所读入的图像数据。
>> imshow(I);