dpcm编码 matlab程序,DPCM预测编码的MATLAB原代码: | 学步园

DPCM预测编码原代码:

i1=imread('3.jpg');

i1=rgb2gray(i1);

i1=imcrop(i1,[20 20 160 160]);

i=double(i1);

[m,n]=size(i);

p=zeros(m,n);

y=zeros(m,n);

y(1:m,1)=i(1:m,1);

p(1:m,1)=i(1:m,1);

y(1,1:n)=i(1,1:n);

p(1,1:n)=i(1,1:n);

y(1:m,n)=i(1:m,n);

p(1:m,n)=i(1:m,n);

p(m,1:n)=i(m,1:n);

y(m,1:n)=i(m,1:n);

for k=2:m-1;

for l=2:n-1;

y(k,l)=(i(k,l-1)/2+i(k-1,l)/4+i(k-1,l-1)/8+i(k-1,l+1)/8);

p(k,l)=round(i(k,l)-y(k,l));

end

end

p=round(p);

subplot(3,2,1),imshow(i1);title('原灰度图像');

subplot(3,2,2),imshow(y,[0 256]);title('利用三个相邻块线性预测后的图像');

subplot(3,2,3),imshow(abs(p),[0 1]);title('编码的绝对残差图像');

j=zeros(m,n);

j(1:m,1)=y(1:m,1);

j(1,1:n)=y(1,1:n);

j(1:m,n)=y(1:m,n);

j(m,1:n)=y(m,1:n);

for k=2:m-1;

for l=2:n-1;

j(k,l)=p(k,l)+y(k,l);

end

end

for r=1:m

for t=1:n

d(r,t)=round(i1(r,t)-j(r,t));

end

end

subplot(3,2,4),imshow(abs(p),[0 1]);title('解码用的残差图像');

subplot(3,2,5),imshow(j,[0 256]);title('使用残差和线性预测重建后的图像');

subplot(3,2,6),imshow(abs(d),[0 1]);title('解码重建后图像的误差');

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值