版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验名称:图像的锐化处理实验目的学习用锐化处理技术来加强图像的目标边界和图像细节。对图像进行梯度算子、Roberts算子、Sobel算子边缘检测处理和Laplace算子边缘增强处理,使图像的某些特征(如边缘、轮廓等)得以进一步的增强和突出。实验内容编写梯度算子和Roberts算子滤波函数。编写Sobel算子滤波函数。编写Laplace算子边缘增强滤波函数。观察频域中用高低通滤波技术对图像进行的平滑和锐化处理。实验方法及编程用Matlab进行编程,主要是对照着实验书上面的算法流程图进行代码的编 写,主要编写代码如下所示:functionnewbuf=RobFilter(oldbuf,M,N);%*************************************************************************%函数名称:%RobFilter()%说明:%'Robert梯度'滤波算法。%*************************************************************************fori=1:M-1forj=1:N-1newbuf(i,j)=abs(oldbuf(i,j)-oldbuf(i+1,j+1))+abs(oldbuf(i+1,j)-oldbuf(i,j+1));endend%-------------------------------------------------------------------------functionnewbuf=SobFilter(oldbuf,M,N);%*************************************************************************%函数名称:%SobFilter()%说明:%'Sobel'滤波算法。%*************************************************************************fori=2:M-1forj=2:N-1sx=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);endend%-------------------------------------------------------------------------functionnewbuf=LapFilter(oldbuf,M,N);%*************************************************************************%函数名称:%LapFilter()%说明:%'Laplace'滤波算法。%************************************************************************fori=2:M-1forj=2:N-1newbuf(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算子与其他边缘增强方法不同,即其边缘的增强程度和边缘的方向无关,所以图像的细节明显比原来更加突出。实验名称:图像方块编码实验目的通过编程实验,掌握方块编码的基本方法及压缩性能。实验内容编程实现子块为nxn的方块编码基本算法,分别取n=2,4,8方块尺寸进行编解码实验,计算编码后的均方误差和压缩比。实验图像可为任意图像。实验方法及编程用Matlab进行编程,主要是对照着实验书上面的算法流程图进行代码的编 写,下面是主要的实验代码:functionnewbuf=BtcCode(oldbuf,M,N,n)%*************************************************************************%函数名称:%BtcCode()方块编码函数%参数:%oldbuf原图像数组%MN原图像尺寸%n方块尺寸%说明:%调用方块编码算法函数,输出编码后的图像%*************************************************************************newbuf=oldbuf;rowblocks=M/n;colblocks=N/n;fori=1:rowblocks-1row=i*n;forj=1:colblocks-1col=j*n;fori=1:nforj=1:ninbuf(i,j)=oldbuf(i+row,j+col);endendoutbuf=BtcBlock(inbuf,n);fori=1:nforj=1:nnewbuf(i+row,j+col)=outbuf(i,j);endendendend%-------------------------------------------------------------------------functionoutbuf=BtcBlock(inbuf,n)%*************************************************************************%函数名称:%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);fori=1:nforj=1:ntemp=temp+inbuf(i,j);endendxt=temp/m;fori=1:nforj=1:nif(inbuf(i,j)>=xt)q=q+1;temp1=temp1+inbuf(i,j);elsetemp0=temp0+inbuf(i,j);endendendifq~=ma0=round(temp0/(m-q));endifq~=0a1=round(temp1/q);endfori=1:nforj=1:nif(inbuf(i,j)<xt)outbuf(i,j)=a0;elseoutbuf(i,j)=a1;endendEnd实验结果及分析(原图像和处理后的图像比较及分析)如上图所示,即为实验结果。实验将图像分为m=n*n的子图像块,然后进行方块编码;由实验结果可知,窗口愈大时,方块效应越明显,方块编码图像变得越模糊;窗口愈小时,编码图像接近于原图像。实验名称:图像线性预测编码实验目的通过编程设计,掌握帧内DPCM的编解码方法(预测,量化)及其压缩性能。实验内容编制一维前值预测DPCM编解码程序,预测系数取(1,0,0,0)。编制二维前值预测DPCM编解码程序,预测系数取(1/2,1/4,0,1/4)。重建图像与原图像误差图像,用绝对误差表示如下:式中的n为放大因子,以便观察误差的分布情况。本实验采用15个量化分层的主观量化器,其量化电平分别取(0,+5,+10,+17,+28,+39,+52,+67)。分别计算重建后图像的PSNR。实验的图像为cla0或cla1。实验方法及编程用Matlab进行编程,主要是对照着实验书上面的算法流程图进行代码的编 写,主要的代码如下所示:functionnewbuf=Dpcm_code(oldbuf,M,N,dim);%*************************************************************************%函数名称:%Dpcm_Code()“线性预测编解码器”算法函数%参数:%oldbuf原图像数组%M,N原图像尺度%dim选择预测编码维数%newbuf存放处理后的图像二维数组%说明:%根据线性预测编解码算法调用各个子模块,对原图像进行1D/2D线性预测编码和解码,%解码后的恢复图像放在newbuf数组中。%*************************************************************************globalnewbuf;%定义全局变量fori=1:Mforj=1:Npre_val=Predict_Value(i,j,N,dim);err=oldbuf(i,j)-pre_val;quan_err=Quant_Value(err);res_val=Restor_Value(quan_err,pre_val);newbuf(i,j)=Clip_Value(res_val);endend%-------------------------------------------------------------------------functionnewbuf=Error_Code(M,N,dim);%*************************************************************************%函数名称:%Error_Code()“传输误码解码器”算法函数%参数:%M,N原图像尺度%dim选择预测编码维数%newbuf存放处理后的图像二维数组%说明:%模拟信道传输过程中产生的误码,观察传输误码经解码后对恢复图像的影响,解码%后的恢复图像放在newbuf数组中。%*************************************************************************globalnewbuf;wrong=zeros(M,N);wrong(100,100)=120;fori=1:Mforj=1:Npre_val=Predict_Value(i,j,N,dim);err=wrong(i,j);quan_err=Quant_Value(err);res_val=Restor_Value(quan_err,pre_val);newbuf(i,j)=Clip_Value(res_val);endend%-------------------------------------------------------------------------functionPvalue=Predict_Value(row,col,N,dim)%*************************************************************************%{Thisfunctionisusedtogivepredictedvalueaslinearpredictor.%Thepredictionformulaisasfollows:%1_DDPCM:^x[i,j]=128ifj=1%x'[i,j-1]ifj>1%2_DDPCM:^x[i,j]=128ifi=1,j=1%x'[i,j-1]ifi=1,j>1%x'[i-1,j]ifi>1,j=1orN%1/2x'[i,j-1]ifi>1,j>1%1/8x'[i-1,j-1](Pirsch'spredictor)%1/4x'[i-1,j]%1/8x'[i-1,j+1]%Dim:Dimensionofprediction%Row:verticalcoordinateofcurrentpixeltobepredicted%COL:horizontalcoordinateofcurrentpixeltobepredicted}%*************************************************************************globalnewbuf;switchdim%预测算法编程case1ifcol==1Pvalue=128;elsePvalue=newbuf(row,col-1);endcase2if(row==1&&col==1)Pvalue=128;endif(row==1&&col>1)Pvalue=newbuf(row,col-1);endif(row>1&&col==1)||(row>1&&col==N)Pvalue=newbuf(row-1,col);endif(row>1&&col>1&&col<N)Pvalue=(1/2)*newbuf(row,col-1)+(1/4)*newbuf(row-1,col-1)+...(1/4)*newbuf(row-1,col+1);endend%-------------------------------------------------------------------------functionQvalue=Quant_Value(err);%*************************************************************************%Thisfunctionisusedaslinearquantizer.Thequantizerhastotally%13quantizationlevel:%0,-+7,-+16,-+27,-+38,-+51,-+66%*************************************************************************if(abs(err)<=3)lev=0;elseif(abs(err)<=11)lev=7;elseif(abs(err)<=21)lev=16;elseif(abs(err)<=32)lev=27;elseif(abs(err)<=44)lev=38;elseif(abs(err)<=58)lev=51;elselev=66;end;end;end;end;end;end;Qvalue=lev;if(err~=0)Qvalue=lev*(err/abs(err));end%-------------------------------------------------------------------------functionRvalue=Restor_Value(quan_err,pre_val)%*************************************************************************%ThisfunctionisusedtogetrestoredvalueofDPCM%x=^x+Quant_Error%*************************************************************************Rvalue=quan_err+pre_val;%-------------------------------------------------------------------------functionCvalue=Clip_Value(res_val)%*************************************************************************%Thisfunctionisusedtocliptorestoredvalueto8_bitvalue%0ifx<0%x'=255ifx>255%xotherwise%*************************************************************************if(res_val<0)Cvalue=0;elseif(res_val>255)Cvalue=255;elseCvalue=res_val;end;end;实验结果及分析(原图像和处理后的图像比较及分析)如上图所示,即为实验所得的结果图像。由实验结果可以看出,一维和二维预测编码图像非常接近原图像;从误码图像中可以看出,一维预测编码会将误差延续到行末端,而二维预测编码其将误码延续至其后的斜后方,所以二维预测编码的误差会偏小。实验名称:JPEG压缩编码实验目的掌握nxn子块的DCT图像变换及频谱特点。熟悉JPEG基本系统的图像编解码方法。实验内容编程实现nxn子块DCT变换的图像频谱显示,8x8子块DCT变换系数按“Z”扫描图像重建,计算图像的均方根误差RMSE,显示误差图像和误差直方图。编程实现JPEG压缩编码,进行8x8子块的DCT图像变换,JPEG量化矩阵的量化与反量化,8x8子块DCT的图像重建,计算图像的均方根误差RMSE,显示误差图像和误差直方图。实验方法及编程用Matlab进行编程,主要是对照着实验书上面的算法流程图进行代码的编 写,主要的代码如下所示:functionnewbuf=DctBlock(oldbuf,Block)%*************************************************************************%函数名称:%DctBlock()DCTn*n块频谱函数%%参数:%oldbuf原图像数组%BlockDCTn*n当前块选择值%newbuf存放处理后的图像二维数组%%说明:%根据Block块的当前选择值,计算原图像的n*n块DCT变换,并转换为可视频谱图,%有利于频谱的观察。%*************************************************************************oldbuf=double(oldbuf);%添加程序H=dctmtx(Block);newbuf=blkproc(oldbuf,[BlockBlock],'P1*x*P2',H,H');newbuf=log(abs(newbuf));subplot(2,2,2);imshow(newbuf,[]);%-------------------------------------------------------------------------functionnewbuf=DctCode(oldbuf,DCTch)%*************************************************************************%函数名称:%DctCode()DCT8*8块系数“Z”字扫描图像压缩函数%%参数:%oldbuf原图像数组%DCTchDCT8*8块“Z”扫描当前系数选择值%newbuf存放处理后的图像二维数组%%说明:%计算图像的8×8子块DCT变换,按“Z”字扫描顺序,根据DCTch参数,只保留64个%DCT系数中的前DCTch个系数,对修改后的DCT系数用逆DCT变换重建图像,得到DCT变%换的压缩图像。计算重建图像的均方根误差RMSE;显示误差图像和误差直方图。%*************************************************************************zigzag=[126715162829%设置z扫描顺序35814172730434913182631424410121925324145541120243340465355212334394752566122353848515760623637495058596364];tbuf=ones(8);%定义8*8全1数组maskbuf=tbuf.*zigzag<=DCTch;%根据当前DCTch值得到“Z”字扫描的二值掩模oldbuf=double(oldbuf);H=dctmtx(8);%添加程序dctno=blkproc(oldbuf,[88],'P1*x*P2',H,H');newbuf=blkproc(dctno,[88],'P1*(x.*P2)*P3',H',maskbuf,H);subplot(2,2,2);imshow(newbuf,[]);eimag(oldbuf,newbuf);%-------------------------------------------------------------------------functionnewbuf=JpegCode(oldbuf)%*************************************************************************%函数名称:%JpegCode()JPEG近似基准编码%%参数:%oldbuf原图像数组%newbuf存放处理后的图像二维数组%%说明:%实现JPEG压缩编码,进行8×8子块DCT变换、JPEG量化矩阵的量化与反量化,%8×8子块DCT的图像重建;计算重建图像的均方根误差RMSE;显示误差图像和误差直方图。%*************************************************************************z=[1611101624405161.121214192658605514131624405769561417222951878062182237566810910377243555648110411392496478871031211201017292959811210010399];%标准亮度量化表oldbuf=double(oldbuf);%原图像数据转换为双精度H=dctmtx(8);%添加程序dctno=blkproc(oldbuf,[88],'P1*x*P2',H,H');jpegno=blkproc(dctno,[88],'round(x./P1)',z);jpegno1=blkproc(jpegno,[88],'x.*P1',z);newbuf=blkproc(jpegno1,[88],'P1*x*P2',H',H);subplot(2,2,2);imshow(newbuf,[]);eimag(oldbuf,newbuf);%-----------------------------
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年营林机械制造行业洞察报告及未来五至十年发展趋势报告
- 2026年中国国际工程咨询有限公司人员招聘考试模拟试题及详细答案解析
- 2026年灌溉活动行业发展趋势及投资前景报告及未来五至十年新兴市场与增量突破
- 《社会工作概论概述》课件
- 2026年风电电机行业洞察报告及未来五至十年发展趋势报告
- 2026年长春市烟草专卖局人员招聘考试参考试题及详细答案解析
- 2026年农药流通服务行业洞察报告及未来五至十年发展趋势报告
- 2026年中国化学工程集团有限公司人员招聘笔试备考试题及详细答案解析
- 2026年固态电子盘行业洞察报告及未来五至十年发展趋势报告
- 2026年甘南市烟草专卖局人员招聘考试模拟试题及详细答案解析
- 浙教版小学劳动六年级《项目一创意改造提效率-劳动工具的改进》教案
- 2023 年 5 月全国事业单位联考 C 类《综合应 用能力》及参考答案
- 合同法与商事合同的实务案例解析与讨论
- 坐标纸(A4纸直接打印就可用)
- 物理化学第九章-胶体化学
- 03第三章-林分结构Y课件
- 兽医流行病学 第七章 描述流行病学
- 疏浚工程概预算编制规定
- LY/T 2749-2016桉树速丰林配方施肥技术规程
- GB/T 18214.1-2000全球导航卫星系统(GNSS)第1部分:全球定位系统(GPS)接收设备性能标准、测试方法和要求的测试结果
- GB/T 18102-2000浸渍纸层压木质地板
评论
0/150
提交评论