数字图像处理实验答案

上传人:cl****1 文档编号:470544026 上传时间:2022-11-14 格式:DOC 页数:17 大小:1.23MB
返回 下载 相关 举报
数字图像处理实验答案_第1页
第1页 / 共17页
数字图像处理实验答案_第2页
第2页 / 共17页
数字图像处理实验答案_第3页
第3页 / 共17页
数字图像处理实验答案_第4页
第4页 / 共17页
数字图像处理实验答案_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数字图像处理实验答案》由会员分享,可在线阅读,更多相关《数字图像处理实验答案(17页珍藏版)》请在金锄头文库上搜索。

1、实验名称:图像的锐化处理一、 实验目的学习用锐化处理技术来加强图像的目标边界和图像细节。对图像进行梯度算子、Roberts算子、Sobel算子边缘检测处理和Laplace算子边缘增强处理,使图像的某些特征(如边缘、轮廓等)得以进一步的增强和突出。二、 实验内容(1) 编写梯度算子和Roberts算子滤波函数。(2) 编写Sobel算子滤波函数。(3) 编写Laplace算子边缘增强滤波函数。(4) 观察频域中用高低通滤波技术对图像进行的平滑和锐化处理。三、 实验方法及编程用Matlab进行编程,主要是对照着实验书上面的算法流程图进行代码的编写,主要编写代码如下所示:function newbu

2、f=RobFilter(oldbuf,M,N);% *% 函数名称: % RobFilter() % 说明:% Robert梯度滤波算法。 % *for i=1:M-1for j=1:N-1newbuf(i,j)=abs(oldbuf(i,j)-oldbuf(i+1,j+1)+abs(oldbuf(i+1,j)-oldbuf(i,j+1);endend %- function newbuf=SobFilter(oldbuf,M,N);% *% 函数名称: % SobFilter() % 说明:% Sobel滤波算法。 % *for i=2:M-1for j=2:N-1 sx=oldbuf(i+

3、1,j-1)+2*oldbuf(i+1,j)+oldbuf(i+1,j+1)-oldbuf(i-1,j-1)-2*oldbuf(i-1,j)-oldbuf(i-1,j+1); sy=oldbuf(i-1,j+1)+2*oldbuf(i,j+1)+oldbuf(i+1,j+1)-oldbuf(i-1,j-1)-2*oldbuf(i,j-1)-oldbuf(i+1,j-1);newbuf(i,j)=abs(sx)+abs(sy); endend %-function newbuf=LapFilter(oldbuf,M,N);% *% 函数名称: % LapFilter() % 说明:% Lapla

4、ce滤波算法。 % * for i=2:M-1for j=2:N-1 newbuf(i,j)=5*oldbuf(i,j)-oldbuf(i-1,j)-oldbuf(i+1,j)-oldbuf(i,j-1)-oldbuf(i,j+1); endend 四、 实验结果及分析(原图像和处理后的图像比较及分析)如上图所示即为实验结果。如上图所示Robert算子能够检测出原图像的边缘,并且显示出来;Sobel在Robert算子的基础上增强了边缘,所以图像上结果会显示比原图像边缘要更加粗一些;Laplace算子与其他边缘增强方法不同,即其边缘的增强程度和边缘的方向无关,所以图像的细节明显比原来更加突出。实

5、验名称:图像方块编码三、 实验目的通过编程实验,掌握方块编码的基本方法及压缩性能。四、 实验内容编程实现子块为nxn的方块编码基本算法,分别取n=2,4,8方块尺寸进行编解码实验,计算编码后的均方误差和压缩比。实验图像可为任意图像。五、 实验方法及编程用Matlab进行编程,主要是对照着实验书上面的算法流程图进行代码的编写,下面是主要的实验代码:function newbuf=BtcCode(oldbuf,M,N,n)% *% 函数名称:% BtcCode() 方块编码函数% 参数:% oldbuf 原图像数组% M N 原图像尺寸% n 方块尺寸% 说明:% 调用方块编码算法函数,输出编码后

6、的图像% * newbuf=oldbuf; rowblocks=M/n; colblocks=N/n; for i=1:rowblocks-1 row=i*n; for j=1:colblocks-1 col=j*n; for i=1:n for j=1:n inbuf(i,j)=oldbuf(i+row,j+col); end end outbuf=BtcBlock(inbuf,n); for i=1:n for j=1:n newbuf(i+row,j+col)=outbuf(i,j); end end end end%- function outbuf=BtcBlock(inbuf,n)

7、% *% 函数名称:% btcblock() 方块编码算法函数% 参数:% inbuf 方块数组% n 方块尺寸% outbuf 存放处理后的方块图像% 说明:% 把原图像分成n*n子块,对每个方块的图像数据分别计算xt,a0,a1值,再用分辨率分% 量(a0,a1)替代方块原来的数据 最后放入方块图像数组中并返回该数组。% * temp=0; temp0=0; temp1=0; q=0;m=n*n; inbuf=double(inbuf);for i=1:n for j=1:n temp=temp+inbuf(i,j); endendxt=temp/m;for i=1:n for j=1:n

8、 if (inbuf(i,j)=xt) q=q+1; temp1=temp1+inbuf(i,j); else temp0=temp0+inbuf(i,j); end endendif q=m a0=round(temp0/(m-q);endif q=0 a1=round(temp1/q);endfor i=1:n for j=1:n if (inbuf(i,j)xt) outbuf(i,j)=a0; else outbuf(i,j)=a1; end endEnd六、 实验结果及分析(原图像和处理后的图像比较及分析)如上图所示,即为实验结果。实验将图像分为m=n*n的子图像块,然后进行方块编码

9、;由实验结果可知,窗口愈大时,方块效应越明显,方块编码图像变得越模糊;窗口愈小时,编码图像接近于原图像。实验名称:图像线性预测编码七、 实验目的通过编程设计,掌握帧内DPCM的编解码方法(预测,量化)及其压缩性能。八、 实验内容(1) 编制一维前值预测DPCM编解码程序,预测系数取(1,0,0,0)。(2) 编制二维前值预测DPCM编解码程序,预测系数取(1/2,1/4,0,1/4)。(3) 重建图像与原图像误差图像,用绝对误差表示如下:式中的n为放大因子,以便观察误差的分布情况。本实验采用15个量化分层的主观量化器,其量化电平分别取(0,+5,+10,+17,+28,+39,+52,+67)。分别计算重建后图像的PSNR。实验的图像为cla0或cla1。三、 实验方法及编程用Matlab进行编程,主要是对照着实验书上面的算法流程图进行代码的编写,主要的代码如下所示:function newbuf=Dpcm_code(oldbuf,M,N,dim);% * % 函数名称:% Dpcm_Code() “线性预测编解码器”算法函数% 参数:% oldbuf 原图像数组% M,N 原图像尺度% dim 选择预测编码维数 % newbuf 存放处理后的图像二维数组% 说明:% 根据线性

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号