收藏 分销(赏)

北科大数字图像处理实验报告.docx

上传人:仙人****88 文档编号:9253110 上传时间:2025-03-18 格式:DOCX 页数:14 大小:4.67MB 下载积分:10 金币
下载 相关 举报
北科大数字图像处理实验报告.docx_第1页
第1页 / 共14页
北科大数字图像处理实验报告.docx_第2页
第2页 / 共14页


点击查看更多>>
资源描述
北京科技大学 计算机与通信工程学院 实 验 报 告 实验名称: 《数字图像处理》课程实验 学生姓名: 徐松松 专 业: 计算机科学与技术 班 级: 计1304 学 号: 41345053 指导教师: 王志明 实验成绩: 实验时间: 2016 年 12 月 15 日 一、实验目的与实验要求 1、实验目的 1. 熟悉图像高斯、脉冲等噪声的特点,以及其对图像的影响; 2. 理解图像去噪算法原理, 并能编程实现基本的图像去噪算法, 达到改善图像质量的效果, 并能对算法性能进行简单的评价。 3. 理解图像分割算法的原理,并能编程实现基本的灰度图像分割算法,并显示图像分割结果。 2、实验要求 1. 对于给定的两幅噪声图像(test1.jpg, test2.jpg), 设计或选择至少两种图像滤波算法对图像进行去噪。 2. 利用给出的参考图像(org1.jpg, org2.jpg), 对不同算法进行性能分析比较。 3. 对于给定的两幅数字图像(test.jpg,test4.jpg),将其转换为灰度图像,设计或 选择至少两种图像分割算法对图像进行分割,用适当的方式显示分割结果,并对不同算法进行性能分析比较。 二、实验设备(环境)及要求 1. Mac/Windows计算机 2. Matlab编程环境。 三、实验内容与步骤 1、实验1 (1)实验内容 1. 对于给定的两幅噪声图像(test1.jpg, test2.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); 4. 利用’rgb2gray’函数将彩色图像转换为灰度图像; >> d=rgb2gray(I); 结果为: 5. 编码实现图像分割, 对原始图像进行区域分割, 并得到各个区域的标号; 1. 利用双分法 先给出原图的直方图,再定出阈值(门限)T,一般取两个峰值间的谷值。 代码: I=imread('test3.jpg'); subplot(1,2,1); i=rgb2gray(I); imhist(i); title('原始图像直方图'); thread=75/255; subplot(1,2,2); i3=im2bw(i,thread); imshow(i3); title('分隔结果'); 从直方图看出两个峰值的谷值大概为75,取作阀值。 分隔结果: 图片二处理: 代码: I=imread('test4.jpg'); subplot(1,2,1); i=rgb2gray(I); imhist(i); title('原始图像直方图'); thread=50/255; subplot(1,2,2); i3=im2bw(i,thread); imshow(i3); title('分隔结果'); 阀值定为50,处理结果如下: 分隔方法二:分水岭分隔法 基本思想: 1. 把图像看作一个三维拓扑地形图 2. 集水盆:局部极小点及其影响区域 3. 分水岭:集水盆的边界 4. 目标:在图像中找出不同的集水盆和分水岭 代码: F=imread('test3.jpg'); f=rgb2gray(F); subplot(2,2,1); imshow(f); title('原始灰度图像'); f=double(f); hv=fspecial('prewitt'); hh=hv.'; gv=abs(imfilter(f,hv,'replicate')); gh=abs(imfilter(f,hh,'replicate')); g=sqrt(gv.^2+gh.^2); L=watershed(g); wr=L==0; subplot(2,2,2); imshow(wr); title('分水岭'); f(wr)=225; subplot(2,2,3); imshow(uint8(f)); title('分隔结果'); rm=imregionalmin(g); subplot(2,2,4); imshow(rm); title('局部极小值'); 结果: 四:实验结果与分析 结果符合预期,分隔图像用双分法结果较好。 对于测试图片用中值滤波处理效果较好。 五:结论(讨论) 1、实验结论 了解了数字图像的基本处理方法,掌握了几种分隔图像方法和去噪滤波方法。 2、讨论 对不同的图像需要判断用哪种处理方法为好。 六、教师评审 教师评语 实验成绩 签名: 日期:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服