数字图像处理实验答案2(共17页)_第1页
数字图像处理实验答案2(共17页)_第2页
数字图像处理实验答案2(共17页)_第3页
数字图像处理实验答案2(共17页)_第4页
数字图像处理实验答案2(共17页)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、ilter(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() % 说明(shumng):% Sobel滤波(lb)算法。 % *for i=2:M-1for j=2:N-1 sx=old

3、buf(i+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);% *% 函数(hnsh)名称: % LapFilter()

4、% 说明:% Laplace滤波算法。 % * 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 实验结果及分析(原图像和处理后的图像比较及分析)如上图所示即为实验(shyn)结果。如上图所示Robert算子能够检测出原图像的边缘,并且显示出来;Sobel在Robert算子的基础上增强了边缘,所以图像上结果会显示比原图像边缘要更加粗一些;Laplace算子与其他边缘增强方法(fngf)不同,即其边缘的增强程度和边缘的方向

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

6、 原图像尺寸% n 方块尺寸% 说明:% 调用方块编码算法函数,输出编码后的图像% * 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 en

7、d%- function outbuf=BtcBlock(inbuf,n)% *% 函数名称:% btcblock() 方块编码算法函数% 参数:% inbuf 方块(fn kui)数组% n 方块(fn kui)尺寸% outbuf 存放(cnfng)处理后的方块图像% 说明:% 把原图像分成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

8、:n temp=temp+inbuf(i,j); endendxt=temp/m;for i=1:n for j=1:n 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)1% 2_D DPCM: xi,j=128 if i=1,j=1% x i,j-1 if i=1,j1% xi-1

9、,j if i1,j=1 or N% 1/2x i,j-1 if i1,j1% 1/8xi-1,j-1 (Pirschs predictor)% 1/4xi-1,j % 1/8xi-1,j+1% Dim : Dimension of prediction% Row : vertical coordinate of current pixel to be predicted% COL : horizontal coordinate of current pixel to be predicted% *global newbuf; switch dim %预测(yc)算法编程 case 1 if

10、col=1 Pvalue=128; else Pvalue=newbuf(row,col-1); end case 2 if (row=1&col=1) Pvalue=128; end if (row=1&col1) Pvalue=newbuf(row,col-1); end if (row1&col=1)|(row1&col=N) Pvalue=newbuf(row-1,col); end if (row1&col1&colN) Pvalue=(1/2)*newbuf(row,col-1)+(1/4)*newbuf(row-1,col-1)+. (1/4)*newbuf(row-1,col+

11、1); endend%-function Qvalue=Quant_Value(err);% * % This function is used as linear quantizer.The quantizer has totally% 13 quantization level :% 0,-+7,-+16,-+27,-+38,-+51,-+66% * if (abs(err)=3) lev=0; else if(abs(err)=11) lev=7; else if(abs(err)=21) lev=16; else if(abs(err)=32) lev=27; else if(abs(

12、err)=44) lev=38; else if(abs(err)=58) lev=51; else lev=66; end; end; end; end; end; end; Qvalue = lev; if (err = 0) Qvalue = lev*(err / abs(err); end%-function Rvalue=Restor_Value(quan_err,pre_val)% *% This function is used to get restored value of DPCM% x=x+Quant_Error% * Rvalue=quan_err + pre_val;

13、 %-function Cvalue=Clip_Value(res_val)% *% This function is used to clip to restored value to 8_bit value% 0 if x255% x otherwise% * if (res_val255) Cvalue=255; else Cvalue=res_val; end;end;实验结果(ji gu)及分析(原图像和处理后的图像比较及分析)如上图所示,即为实验所得的结果(ji gu)图像。由实验(shyn)结果可以看出,一维和二维预测编码图像非常接近原图像;从误码图像中可以看出,一维预测编码会将

14、误差延续到行末端,而二维预测编码其将误码延续至其后的斜后方,所以二维预测编码的误差会偏小。实验名称:JPEG压缩编码实验目的掌握nxn子块的DCT图像变换及频谱特点。熟悉JPEG基本系统的图像编解码方法。实验内容编程实现(shxin)nxn子块DCT变换的图像频谱显示,8x8子块DCT变换系数按“Z”扫描图像重建,计算图像的均方根(fnggn)误差RMSE,显示误差图像和误差直方图。编程实现JPEG压缩编码,进行8x8子块的DCT图像变换,JPEG量化矩阵的量化与反量化,8x8子块DCT的图像重建,计算图像的均方根(fnggn)误差RMSE,显示误差图像和误差直方图。 实验方法及编程用Matl

15、ab进行编程,主要是对照着实验书上面的算法流程图进行代码的编写,主要的代码如下所示:function newbuf=DctBlock(oldbuf,Block)% *% 函数名称: % DctBlock() DCT n*n 块频谱函数% % 参数:% oldbuf 原图像数组% Block DCT n*n 当前块选择值% newbuf 存放处理后的图像二维数组% % 说明:% 根据Block块的当前选择值,计算原图像的n*n块DCT变换,并转换为可视频谱图,% 有利于频谱的观察。 % * oldbuf=double(oldbuf);% 添加程序H=dctmtx(Block);newbuf=bl

16、kproc(oldbuf,Block Block,P1*x*P2,H,H);newbuf=log(abs(newbuf);subplot(2,2,2);imshow(newbuf,); %- function newbuf=DctCode(oldbuf,DCTch)% *% 函数名称: % DctCode() DCT 8*8 块系数(xsh)“Z”字扫描(somio)图像压缩函数% % 参数(cnsh):% oldbuf 原图像数组% DCTch DCT 8*8 块“Z”扫描当前系数选择值% newbuf 存放处理后的图像二维数组% % 说明:% 计算图像的88子块DCT变换,按“Z”字扫描顺

17、序,根据DCTch参数,只保留64个% DCT系数中的前DCTch个系数,对修改后的DCT系数用逆DCT变换重建图像,得到DCT变% 换的压缩图像。计算重建图像的均方根误差RMSE ;显示误差图像和误差直方图。 % * zigzag=1 2 6 7 15 16 28 29 %设置z扫描顺序 3 5 8 14 17 27 30 43 4 9 13 18 26 31 42 44 10 12 19 25 32 41 45 54 11 20 24 33 40 46 53 55 21 23 34 39 47 52 56 61 22 35 38 48 51 57 60 62 36 37 49 50 58

18、59 63 64; tbuf=ones(8); %定义8*8全1数组 maskbuf=tbuf .* zigzag= 1 %如果有数据 s=max(h(:); subplot(2,2,3); %imshow(hist); bar(x,h/s,k); %显示图像差值直方图 RMSE = num2str(RMSE); %把数值转换为字符串 strRMSE = strcat(图像差值直方图 均方根误差RMSE= ,RMSE); %把多个串连接成长串 title(strRMSE); e = mat2gray(e,-emax,emax); %显示差值图像 subplot(2,2,4),imshow(e); title(原图像与压缩图像的差值图像); %显示结果图像标题 endend实验结果及分析(原图像和处理后的图像比较及分析)如上图所示,即为实验的结果(ji gu)图像。对于DCT变换,变换后的高频部分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论