南京邮电大学图像实验.doc_第1页
南京邮电大学图像实验.doc_第2页
南京邮电大学图像实验.doc_第3页
南京邮电大学图像实验.doc_第4页
南京邮电大学图像实验.doc_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

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

文档简介

通信与信息工程学院2016/2017学年第一学期实 验 报 告实验课程名称 数字图像处理与图像通信实验 专 业 电子信息工程 学 生 学 号 学 生 姓 名 指 导 教 师 谢世鹏 指 导 单 位 广播工程电视系 实验一 图像信号的数字化一、实验目的通过本实验了解图像的数字化参数取样频率(像素个数)、量化级数与图像质量的关系。二、实验内容1、编写并调试图像数字化程序。要求参数k,N可调。其中,k为亚抽样比例,N为量化比特数。2、可选任意图像进行处理,在显示器上观察各种数字化参数组合下的图像效果。三、实验方法及编程在数字系统中进行处理、传输和存储图像,必须把代表图像的连续信号转变为离散信号,这种变换过程称为图像信号的数字化。它包括采样和量化两种处理。本实验对数字图像进行再采样和再量化,以考察人眼对数字图像的分辨率和灰度级的敏感程度。 程序的主体部分如下: function newbuf=Sample_Quant(oldbuf,k,n)% % 函数名称:Sample_Quant() 图像数字化算法函数 % oldbuf 原图像数组 % M N 原图像尺寸 % k 取样间隔 % n 量化比特值 % newbuf 存放处理后的图像二维数组 M,N=size(oldbuf); oldbuf=double(oldbuf); x=1;y=1; while xM while yN new=(round(oldbuf(x,y)/(2(8-n)*(2(8-n); for i=0:k-1 for j=0:k-1 if(x+iM)&(y+j=N y=1; end x=x+k; end4、 实验结果及分析实验截图如下: 由实验结果可以看出,亚抽样比例k和量化比特数N对都会使图像变得模糊,但两者的影响是不相同的。亚抽样比例k的大小决定了数字化图像的方块效应是否明显。当k较大时,数字化图像会有较为明显的块状出现,对于图像的视觉效果影响很大。量化比特数N则决定了图像的灰度级,量化比特数为N时,图像有个2N灰度级。所以当N较小时,图像会出现不规则的区域有着相同的灰度值的情况,但是这些区域在原图像中却有着差别较小的不同的灰度值。特别是在原图的灰度渐变的区域,这种效应会变得尤为明显。实验二 图像灰度级修正一、实验目的掌握常用的图像灰度级修正方法,即图像的灰度变换法和直方图均衡化法,加深对灰度直方图的理解。二、实验内容1、编程实现图像的灰度变换。改变图像输入、输出映射的灰度参数范围(拉伸和反比),观看图像处理结果。2、修改可选参数gamma值,使其大于1,等于1和小于1,观看图像处理结果。3、对图像直方图均衡化处理,显示均衡前后的直方图和图像。三、实验方法及编程 灰度级修正是图像空间域上的增强方法图像增强,它以图像的灰度映射变换为基础,直接对图像中的像素进行处理。常用到三种基本方式:线性,对数,幂次。 程序的主体部分如下: Function newbuf=GrayGamma(oldbuf,r) newbuf=imadjust(oldbuf,stretchlim(oldbuf),r); newbuf=uint8(newbuf); function newbuf=GrayEqualize(oldbuf) % 函数名称: % GrayEqualize() 直方图均衡算法函数 % 参数: % oldbuf 原图像数组 % newbuf 存放处理后的图像二维数组 M,N=size(oldbuf); NN=M*N;sk=0; COUNTS,X=imhist(oldbuf,256); for i=1:M for j=1:N kk=double(oldbuf(i,j); for k=1:kk sk=sk+COUNTS(k); end sk=sk/NN*256; newbuf(i,j)=sk; end end newbuf=uint8(newbuf);4、 实验结果及分析实验截图如下: 由实验结果可以看出,所选的测试图像的灰度值主要分布于低值的部分。经过无gamma值的灰度值变换后,直观地看出:分布于低值部分的直方图分散开来,分布于几乎所有的灰度值,但是对映于各个灰度值的像素个数分布仍是不均匀的。变换后的图像比原图显得明亮、清晰。经过第二第三幅图像可以进一步看出:gamma值的灰度值变换则明显受gamma值的影响:当gamma值大于1时,直方图有向灰度为0的一端压缩的趋势,gamma越大,这种趋势越明显。此时的图像比原图清晰,但是原本偏暗的部分更加偏黑,原本较亮的部分则变得发白,总体而言,图像偏暗的部分较多。当gamma值小于1时,其趋势与gamma值大于1相反,故整个图像显得发白。直方图均衡后的图像也显得较为清晰、均匀。它能尽量将直方图变得均衡,分布也更为均匀,各个灰度值所对应的像素个数尽可能相同。实验三 图像的平滑滤波一、实验目的图像平滑主要目的是减少噪声对图像的影响。噪声有很多种类,不同的噪声有不同的抑制措施。本实验要求用平滑线性滤波和中值滤波两种最典型、最常用的处理算法进行程序设计,学习如何对已被污染的图像进行“净化”。通过平滑处理,对结果图像加以比较,得出自己的实验结论。2、 实验内容 1、编写并调试窗口尺寸为mn的平滑滤波函数。2、编写并调试窗口尺寸为mn的中值滤波函数。三、实验方法及编程 在M*N的图像f上,用m*n大小的滤波器模板进行线性滤波由这个公式给出: 程序如下: function newbuf=AverageFilter(oldbuf,M,N,m) % 函数名称: % AverageFilter() 均值滤波算法函数 % 参数: % oldbuf 噪声图像数组 % M N 噪声图像尺寸 % m 矩形平滑窗口尺寸 % newbuf 存放处理后的图像二维数组 oldbuf=double(oldbuf); newbuf=zeros(M,N); for i=(m+1)/2:M-(m+1)/2 for j=(m+1)/2:N-(m+1)/2 for x=-(m-1)/2:(m-1)/2; for y=-(m-1)/2:(m-1)/2; newbuf(i,j)=newbuf(i,j)+oldbuf(i+x,j+y)/(m*m); end end end end function newbuf=MedianFilter(oldbuf,M,N,m) % 函数名称: % MedianFilter() 中值滤波算法函数 % 参数: % oldbuf 原图像数组 % M N 原图像尺度 % m 滑动窗口尺寸 % newbuf 存放处理后的图像数组 for i=(m+1)/2:M-(m+1)/2 for j=(m+1)/2:N-(m+1)/2 k=1; for x=-(m-1)/2:(m-1)/2; for y=-(m-1)/2:(m-1)/2; winbuf(k)=oldbuf(i+x,j+y); k=k+1; end end newbuf(i,j)=SeekMid(winbuf,m); end end winsize=length(winbuf); %取窗口尺寸 for i=1:winsize %编写排序函数 for j=1:winsize-i if(winbuf(i)winbuf(j+i) t=winbuf(i); winbuf(i)=winbuf(j+i); winbuf(j+i)=t; end end end mid=winbuf(ceil(m*m/2);4、 实验结果及分析实验截图如下: 由实验结果可以看出,对于处理椒盐噪声,中值滤波比均值滤波要好很多。当窗口大小为33时,均值滤波能一定程度上降低噪声的污染,但是,仍能看出在噪声点,并没有完全消除噪声,只是将噪声与周围的图像进行了平均,噪声点只是显得模糊了,并没有完全消除。相比之下,中值滤波则效果明显,同为33的窗口,几乎能把所有的噪声点消除,效果非常显著。当窗口大小变大时,也能将大部分噪声点消除,但是会带来严重的模糊。同时我们可以看出,两种方法都使得处理后的图像比原图要模糊,并且随着窗口的变大,图像变得越来越模糊。通过两种方法之间的比较则可以看出,同等窗口下中值滤波带来的模糊比均值滤波要轻一些。实验四名称:图像的锐化处理一、实验目的学习用锐化处理技术来加强图像的目标边界和图像细节。对图像进行梯度算子、Roberts算子、Sobel算子边缘检测处理和Laplace算子边缘增强处理,是图像的某些特征(如边缘、轮廓等)得以进一步的增强及突出。二、实验内容1、编写梯度算子和Roberts算子滤波函数。2、编写Sobel算子滤波函数。3、编写拉普拉斯边缘增强滤波函数。三、实验方法及编程 在实验中,我们对于这三种算子的算法,都有其各自对应的模板,根据这个模板我们可以方便地编写出程序的主体结构。指导书中也有对应的流程框图可供参考。 程序的主体部分如下: function newbuf=RobFilter(oldbuf,M,N); % RobFilter() for i=1:M-1 for j=1:N-1 newbuf(i,j)=abs(oldbuf(i,j)-oldbuf(i+1,j+1)+abs(oldbuf(i+1,j)-oldbuf(i,j+1); end end function newbuf=SobFilter(oldbuf,M,N); % SobFilter() for i=2:M-1 for j=2:N-1 sx=oldbuf(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); end end function newbuf=LapFilter(oldbuf,M,N); % LapFilter() for i=2:M-1 for 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); end end4、 实验结果及分析实验截图如下:从上面的图像可以看出:Robert梯度算子得出的图像能够得出原图的大部分边缘细节,灰度差别越大的地方结果越大,所以显示时较为明亮。一些边缘由于灰度差值较小,在得出的结果图像中不容易分辨出来。Sobel算子得出的图像则显得明亮而粗壮。所有的边缘细节均被显示出来,特别是人物面部。由于其结果粗壮,面部细节显得非常密集。Laplace算子则用以将图像的边缘、细节增强,通过结果结果可以看出,图像的细节明显比原来突出。但是这个方法存在的弊端是,在背景区域,结果图像中有一些噪声的图样也被加强了。实验五 图像方块编码(BTC)一、实验目的通过编程实验,掌握方块编码的基本方法及压缩性能。二、实验内容编程实现子块为nn的方块编码基本方法,分别取n=2,4,8方块尺寸进行方块编码实验,计算编码后的均方误差和压缩比。3、 实验方法及编程本实验采用的方案为:(1)(2) (3) 程序的主体部分如下: function outbuf=BtcBlock(inbuf,n) % btcblock() 方块编码算法函数 % inbuf 方块数组 % n 方块尺寸 % outbuf 存放处理后的方块图像 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); end end xt=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 end end if q=m a0=round(temp0/(m-q); end if q=0 a1=round(temp1/q); end for 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,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+1global newbuf;switch dim case 1 if 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+1); endendfunction Qvalue=Quant_Value(err);% This function is used as linear quantizer.The quantizer has totally% 15 quantization level :% 0,5,10,17,28,39,52,67if (abs(err)=2.5) lev=0; else if(abs(err)=7.5) lev=5; else if(abs(err)=13.5) lev=10; else if(abs(err)=22.5) lev=17; else if(abs(err)=33.5) lev=28; else if(abs(err)=45.5) lev=39; else if(abs(err)=59.5) lev=52; else lev=67;Qvalue=lev;if (err=0) Qvalue=lev*(err/abs(err);endfunction Rvalue=Restor_Value(quan_err,pre_val)% This function is used to get restored value of DPCM% x=x+Quant_ErrorRvalue=quan_err+pre_val;function Cvalue=Clip_Value(res_val)% This function is used to clip to restored value to 8_bit value% 0 if x255% x otherwiseif (res_val255) Cvalue=255; else Cvalue=res_val; endend4、 实验结果及分析 由实验结果可以看出,一维和二维预测编码图像与原图均十分接近,两者的差别难以察觉。而从误码图像中可以看出,当在某一位置出现误码后,一维预测编码会将误差延续至整个行,显得很明显。二维预测编码则与之不同,其将误码延续至其后的斜后方,并且随着距离的增加迅速消失,总体而言,影响要小一些。两相比较,可以体现出二维预测编码的一些优势。实验七名称:JPEG压缩编码一、实验目的(1) 掌握nn子块的DCT图像变换及频谱特点。(2) 熟悉JPEG基本系统的图像编解码方法。二、实验内容1、编程实现nn子块DCT变换的图像频谱显示,88子块DCT变换系数按“Z”(Zig-Zag)扫描图像重建,计算图像的均方根误差RMSE,显示误差图像和误差直方图。2、编程实现JPEG压缩编码,进行88子块的DCT图像变换,JPEG量化矩阵的量化与反量化,88子块DCT的图像重建,计算图像的均方根误差RMSE,显示误差图像和误差直方图。三、实验方法及编程: DCT频谱系数在方块中的分布有如下规律:直流系数位于左上角第一个的位置,且值较大。余下的为交流系数,越向右下角系数的值一般越小,属于高频分量。在细节较多的区域,DCT频谱系数整体显得较亮,而在背景区,除了直流系数和少数低频系数,其余都为0或很小的值,故而显示为黑色。对DCT系数做反DCT变换则可复原出原图。若反变换前对DCT系数进行取舍则可以降低码率,但是,会对图像质量带来一定的影响。 JPEG压缩编码的算法主要计算步骤如下: (1)通过前向离散余弦变换减少图像数据相关性。 (2)利用人眼的视觉特性对DCT系数进行量化。 (3)使用差分脉冲编码调制对直流系数进行编码。 (4)对交流系数进行“Z”形扫描,使用行程长度编码对交流系数进行编码。 (5)熵编码器对上述描述符进行熵编码,可以采用霍夫曼编码,也可以采用算数编码。程序的主体部分如下: function newbuf=DctBlock(oldbuf,Block) % DctBlock() DCT n*n块频谱函数% oldbuf 原图像数组% Block DCT n*n当前块选择值% newbuf 存放处理后的图像二维数组 oldbuf=double(oldbuf);H=dctmtx(Block);newbuf=blkproc(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 块系数“Z”字扫描图像压缩函数% oldbuf 原图像数组% DCTch DCT 8*8 块“Z”扫描当前系数选择值% newbuf 存放处理后的图像二维数组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

温馨提示

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

评论

0/150

提交评论