dpcm编码 matlab程序,DPCM编码MATLAB实现.docx

DPCM编码MATLAB实现 %本文是数字图像处理的一个源程序%实现的功能是DPCM编码%DPCM编码,简称差值编码,是对模拟信号幅度抽样的差值进行量化编码的调制方式%本程序实现一阶/二阶/三阶/四阶DPCM数字信号预测%一阶/二阶/三阶/四阶预测的区别不仅在于信号的清晰度,而更重要在于%阶数越高,图像越光滑.clcclearclose all;%从D盘导入图片,以学校风光图片为例实现DPCMI03=imread('d:\shuxuejianmo.bmp');%把RGB图像转化为灰度图像I02=rgb2gray(I03);I=double(I02);fid1=fopen('mydata1.dat','w');fid2=fopen('mydata2.dat','w');fid3=fopen('mydata3.dat','w');fid4=fopen('mydata4.dat','w');[m,n]=size(I);%对预测信号将边缘锁定,防止程序运行时抓不到数据J1=ones(m,n);J1(1:m,1)=I(1:m,1);J1(1,1:n)=I(1,1:n);J1(1:m,n)=I(1:m,n);J1(m,1:n)=I(m,1:n);J2=ones(m,n);J2(1:m,1)=I(1:m,1);J2(1,1:n)=I(1,1:n);J2(1:m,n)=I(1:m,n);J2(m,1:n)=I(m,1:n);J3=ones(m,n);J3(1:m,1)=I(1:m,1);J3(1,1:n)=I(1,1:n);J3(1:m,n)=I(1:m,n);J3(m,1:n)=I(m,1:n);J4=ones(m,n);J4(1:m,1)=I(1:m,1);J4(1,1:n)=I(1,1:n);J4(1:m,n)=I(1:m,n);J4(m,1:n)=I(m,1:n);%一阶DPCM编码for k=2:m-1 for l=2:n-1 J1(k,l)=I(k,l)-I(k,l-1); endendJ1=round(J1);cont1=fwrite(fid1,J1,'int8');cc1=fclose(fid1);%二阶DPCM编码for k=2:m-1 for l=2:n-1 J2(k,l)=I(k,l)-(I(k,l-1)/2+I(k-1,l)/2); endendJ2=round(J2);cont2=fwrite(fid2,J2,'int8');cc2=fclose(fid2);%三阶DPCM编码for k=2:m-1 for l=2:n-1 J3(k,l)=I(k,l)-(I(k,l-1)*(4/7)+I(k-1,l)*(2/7)+I(k-1,l-1)*(1/7)); endendJ3=round(J3);cont3=fwrite(fid3,J3,'int8');cc3=fclose(fid3);%四阶DPCM编码for k=2:m-1 for l=2:n-1 J4(k,l)=I(k,l)-(I(k,l-1)/2+I(k-1,l)/4+I(k-1,l-1)/8+I(k-1,l+1)/8); endendJ4=round(J4);cont4=fwrite(fid4,J4,'int8');cc4=fclose(fid4);%=====================================================================%以上是DPCM编码的编码过程,为了使程序具有连贯性,将编码和解码放在同一个M文件目录下%=====================================================================%以下是DPCM解码fid1=fopen('mydata1.dat','r');fid2=fopen('mydata2.dat','r');fid3=fopen('mydata3.dat','r');fid4=fopen('mydata4.dat','r');I11=fread(fid1,cont1,'int8');I12=fread(fid2,cont2,'int8');I13=fread(fid3,cont3,'int8');I14=fread(fid4,cont4,'int8');tt=1;for l=1:n for k=1:m I1(k,l)=I11(tt); tt=tt+1; endendtt=1;for l=1:n for k=1:m I2(k,l)=I12(tt); tt=tt+1; endendtt=1;for l=1:n for k=1:m I3(k,l)=I13(tt); tt=tt+1; endendtt=1;for l=1:n for

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值