数字图像处理- 图像压缩

目的:编程对图像进行线性预测编码处理。

要求:能够编程实现对图像进行压缩处理。

根据图1中二阶线性预测编码原理的示意图,图中a1=1a2= -1,编写线性预测编码代码对一幅灰度图像进行压缩。

数字图像处理- 图像压缩_第1张图片

 1 二阶线性预测编码原理

1) 算法或流程图

  1. 读入图像,并打印展示原图像
  2. 转换源图像速度类型为double型
  3. 得到原图像的高度和宽度参数
  4. 设置存放预测值的矩阵初始值为零
  5. 将256列矩阵扩展至257列
  6. 利用双重for循环计算预测后的值, 并将预测后的值放入相应位置
  7. 计算原值与预测值的差值
  8. 打印预测后的图像和差值图像
clc
X=imread('cameraman.tif'); 
%X=[2 4 6 8 8 4 2 10]
figure(1),imshow(X);                   
x=double(X);                             
a=[1 -1];
[m,n]=size(x);                   
p=zeros(m,n+1);                   
xs=x;  
xs(1:256,257)=0;
%NumA=length(X) 
for i=1:m
    for j=1:n-1
    
        fo=sum(a.*x(i,j:j+1));
        p(i,j+2)=fo;
    end
end
e=xs-p;
figure(2),imshow(p);  
figure(3),imshow(e);  

 数字图像处理- 图像压缩_第2张图片

原图像 

 

 数字图像处理- 图像压缩_第3张图片

 预测后的图像

 数字图像处理- 图像压缩_第4张图片

 差值图像

通过本次实验,掌握基本的图像压缩方法,观察图像压缩的效果,加深对二阶线性预测编码原理的理解,掌握二阶线性预测编码方法,相信在以后的学习中会学到更多。

你可能感兴趣的:(图像处理,matlab)