图像之所以能够进行压缩,其数学机理主要有一下两点:
(1)、原始图像数据往往存在各种信息的冗余(如空间冗余视觉冗余和结构冗余等),数据之间存在相关性,邻近像素的灰度(将其看成随即变量)往往是高度相关的。
(2)、在多媒体应用领域,人眼作为图像信息的接受端,其视觉对于边缘急剧变化不敏感,以及人眼存在对图像的亮度信息敏感,而对颜色分辨率弱等,因此在高压缩比的情况下,解压缩后的图像信号仍然有满意的主观质量。
所谓图像压缩就是去除掉冗余,保留重要信息。图像压缩的过程常称为编码,而图像的恢复则称为解码。虽然图像的数据时非常巨大的,但是可以采用适当的坐标变换去除相关,从而达到压缩数据的目的。传统的K.L就是以这种思想为基础的,它把信号的一小块看成是一个独立的随机向量,它的基函数由余弦函数组成。
4.2.2 参数设置
对图像压缩,本次毕业设计考虑对数字图像进行7层小波分解,并提取小波分解结构中的一层的低频系数和高频系数。
(1)、调用二文小波分析函数,分别从水平方向、斜线方向、垂直方向提取二文小波分解高频系数,重构第一层系数;
(2)、调用二文小波单支重构函数,显示第一层频率信息;
(3)、对图像进行压缩:保留第一层低频信息并对其进行量化编码;
(4)、量化编码函数,同时改变图像高度并显示。
部分程序代码如下所示:
[c,l]=wavedec2(X,2,'bior3.7');//用boir3.7小波进行2层小波分解
//提取小波分解结构中第一层低频系数和高频系数
cA1=appcoef2(c,l,'bior3.7',1); cH1=detcoef2('h',c,l,1);
cD1=detcoef2('d',c,l,1);
cV1=detcoef2('v',c,l,1);
//对个频率成分进行重构
A1=wrcoef2('a',c,l,'bior3.7',1);
H1=wrcoef2('h',c,l,'bior3.7',1);
D1=wrcoef2('d',c,l,'bior3.7',1);
V1=wrcoef2('v',c,l,'bior3.7',1);
c1=[A1 H1;V1 D1];
subplot(2,2,2);
image(c1);
ca1=wcodemat(cA1,440,'mat',0);
ca1=0.5*ca1; //改变图像的高度
subplot(2,2,3);
image(ca1);
colormap(map);
完整运行程序见附录2。
通过Matlab应用程序仿真显示,压缩前图像的大小:
Name Size Bytes Class
X 256x256 524288 double array
Grand total is 65536 elements using 524288 bytes
第一次压缩后图像的大小:
Name Size Bytes Class
ca1 135x135 145800 double array
Grand total is 18225 elements using 145800 bytes
第二次压缩后图像大小:
Name Size Bytes Class
ca2 75x75 45000 double array Matlab小波变换在图像处理中的仿真及应用+源码(12):http://www.751com.cn/tongxin/lunwen_705.html