基于二维小波分析的图像处理(上)

基于二维小波分析的图像处理(上)

1.摘要 

本文从二维小波理论出发,对其在图像处理的应用上进行了一些分析和处理,力图反映出小波分析在图像处理方面有着其独特的特点。本文就以下几点进行阐述:

小波基本概念 图像压缩 图像消噪 图象增强 图象平滑处理

2.小波基本概念

     小波变换是一种信号的时间——尺度分析方法,他具有多分辨率分析的特点,而且在时频两域都具有表征信号局部特征的能力,是一种窗口大小固定不变但其形状可变,时间窗和频率窗都可变的时频局部化分析方法。即再低频部分具有较高的频率分辨率和时间分辨率,在高频部分具有较高的时间分辨率和较低的频率分辨率,很适合探测正常信号中夹带的瞬态反常现象并展示其成分,所以被誉为分析信号的显微镜。

   小波分析是把信号分解成低频al和高频dl两部分,在分解中,低频al中失去的信息由高频dl俘获。在下一层的分解中,又将al分解成低频a2和高频d2两部分,低频a2中失去的信息由高频d2俘获,如此类推下去,可以进行更深层次的分解。

二维小波函数是通过一维小波函数经过张量积变换得到的,二维小波函数分解是把尺度j的低频部分分解成四部分:尺度j+1的低频部分和三个方向(水平、垂直、斜线)的高频部分。

3.图像压缩

对于图像来说,如果需要进行快速或实时传输以及大量存储,就需要对图像数据进行压缩。在同样的通信容量下,如果图像数据压缩后在传输,就可以传输更多的图像信息。例如,用普通的电话线传输图像信息。图像压缩研究的就是寻找高压缩比的方法且压缩后的图像要有合适的信噪比,在压缩传输后还要恢复原信号,并且在压缩、传输、恢复的过程中,还要求图像的失真度小。这就是图像压缩的研究问题。

   图像数据往往存在各种信息的冗余、如空间冗余、信息熵冗余 、视觉冗余 和结构冗余等等。所谓压缩就是去掉各种冗余,保留对我们有用的信息。图像压缩的过程常称为编码。相对的,图像的恢复当然就是解码了。

   图像压缩的方法通常可分为有失真编码和无失真编码两大类:

       1.无失真编码方法如改进的霍夫曼编码。

       2.有失真编码方法的还原图像较之原始图像存在着一些误差,但视觉效果是可以接受的。常见的方法有预测编码、变换编码、量化编码、信息熵编码、分频带编码和结构编码等等。

    而将小波分析引入图像压缩的范畴也是一个重要的手段,并且有着它自己的特点。它的特点在于压缩比高、压缩速度快,压缩后能保持信号与图像的特征基本不变,且在传递过程中可以抗干扰等等。

下面就举一个例子来说明怎样用小波分析进行图像压缩。

    例如现在有一个二维图像wbarb,我们利用二维小波分析来进行图像压缩。

由原理可知,一个图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的。高分辨率(高频)子图像上大部分点的数值都接近于0,越是高就越是明显。而对于一个图像来说,表现一个图像的最主要的部分是低频部分,所以最简单的压缩方法是利用小波分解去掉图像的高频部分而只保留低频部分。

程序大致如下:

clear

%装入图像

load wbarb;

%显示图像

 syms X;

subplot(221);

image(coast);

colormap(map)

title("原始图像");

axis square

disp("压缩前图像X的大小");

whos("coast")

%对图像用小波进行层小波分解

[c,s]=wavedec2(X,2,"bior3.7");

%提取小波分解结构中的一层的低频系数和高频系数

cal=appcoef2(c,s,"bior3.7",1);

%水平方向

ch1=detcoef2("h",c,s,1);

%垂直方向

cv1=detcoef2("v",c,s,1);

%斜线方向

cd1=detcoef2("d",c,s,1);

%各频率成份重构

a1=wrcoef2("a",c,s,"bior3.7",1);%可以选择不同的小波,根据应用而定

h1=wrcoef2("h",c,s,"bior3.7",1);

v1=wrcoef2("v",c,s,"bior3.7",1);

d1=wrcoef2("d",c,s,"bior3.7",1);

c1=[a1,h1;v1,d1];

%显示分频信息

subplot(222);

image(c1);

axis square;

title ("分解后低频和高频信息");

%进行图像压缩

%保留小波分解第一层低频信息

%首先对第一层信息进行量化编码

ca1=appcoef(c,s,"bior3.7",1);

ca1=wcodemat(ca1,440,"mat",0);

%改变图像高度并显示

ca1=0.5*ca1;

subplot(223);

image(ca1);

colormap(map);

axis square;

title("第一次压缩图像");

disp("第一次压缩图像的大小为:");

whos("ca1")

%保留小波分解第二层低频信息进行压缩

ca2=appcoef2(c,s,"bior3.7",2);

%首先对第二层信息进行量化编码

ca2=wcodemat(ca2,440,"mat",0);

%改变图像高度并显示

ca2=0.25*ca2;

subplot(224);

image(ca2);

colormap(map);

axis square;

title("第二次压缩图像");

disp("第二次压缩图像的大小为:");

whos("ca2")

 

输出结果如图:

 

Name

Size

Bytes

class

压缩前图像

X

256×256

524288

Double array

第一次压缩图像

Ca1

135×135

145800

Double array

第二次压缩图像

Ca2

75×75

45000

Double array

在这里可以看出,第一次压缩我们是提取原始图像中小波分解第一层的低频信息,此时压缩效果较好,压缩比较小(约为1/3大小)。第二次压缩实提取第一层分解低频部分的低频部分(即第二层的低频部分),其压缩比较大(约为1/12),压缩效果在视觉上也基本过得去。

   上面的保留原始图像中低频信息的压缩办法只是一种最简单的压缩办法。它不需经过其他处理即可获得较好的压缩效果。当然,对于上面的例子我们还可以只提取小波分解的第三、第四层的低频信息。从理论上说,我们可以获得任意压缩比的压缩图像。只不过在对压缩比和图像质量都有较高要求时,它就不如其他编码方法了。

Clear;

%装入图形信号

load wbarb;

%显示图像

subplot(221);

image(X);

colormap(map);

title("原始图像");

disp("压缩前图像的大小");

whos("X");

axis square;

%对图像进行压缩

%对图像用db3小波进行二层小波分解

[c,s]=wavedec2(X,5,"db3");

[thr,sorh,keepapp]=ddencmp("cmp","wv",X);

[Xcomp,cxc,lxc,perf0,perfl2]=wdencmp("gbl",c,s,"db3",5,thr,sorh,keepapp);

%将压缩后的图像于原始图像相比较

subplot(222);

image(Xcomp);

colormap(map);

title(" 压缩后的图像");

disp("压缩后图像的大小");

whos("Xcomp")

%显示有关参数

disp("小波分解系数中值为0的系数个数百分比");

disp(perf0);

disp("压缩后剩余能量百分比");

disp(perfl2);

输出结果如下:

小波分解系数中值为0的系数个数百分比:49.8088

压缩后剩余能量百分比:99.9754

   总之,世事无绝对。一种压缩图像的方法不可能尽善尽美。要想很好的进行图像的压缩,就需要综合的利用多种其他技术,特别是数据编码和解码算法。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Matlab基于二维小波变换的图像去噪实验是一种常见的图像处理方法,它可以有效地去除图像中的噪声,提高图像的质量。该方法的基本思路是将原始图像进行小波变换,然后对小波系数进行阈值处理,将小于阈值的系数置为0,大于阈值的系数保留,最后再进行小波反变换,得到去噪后的图像。这种方法可以应用于各种类型的图像,如自然图像、医学图像等。在实验中,需要选择合适的小波基和阈值,以达到最佳的去噪效果。 ### 回答2: MATLAB是一种非常出色的编程语言,它在数学、科学、工程及相关领域具有广泛的应用。在图像处理领域中,MATLAB也有着出色的表现。基于二维小波变换的图像去噪实验,就是其中一个典型的例子。 小波变换是一种非常重要的信号分析工具,它可以把信号分解成多个不同频率和不同时间尺度的子信号,从而具备更好的局部特征。在二维图像处理中,通过对图像进行小波变换,可以将图像分解成多个小波系数,从而方便我们进行去噪操图像去噪通常是指消除图像中的噪声或噪声产生的影响,使图像更加清晰。二维小波变换的图像去噪实验,通常有以下步骤: 1.读取需要处理的图像,对图像进行归一化处理; 2.选择一个适合的小波基函数,常用的有Haar小波、Daubechies小波等; 3.利用小波变换对图像进行分解,得到图像的小波系数; 4.对小波系数进行阈值处理,将所有小于某一阈值的系数置为零; 5.对处理后的小波系数进行逆变换,并将其映射回原图像域中; 6.输出去噪后的图像,并和原图像进行对比。 MATLAB中,可以使用wdenoise函数来实现基于二维小波变换的图像去噪操。该函数会按照用户指定的小波基函数和阈值对图像进行分解和处理,然后返回处理后的图像。 总之,基于二维小波变换的图像去噪实验是一种非常实用和重要的图像处理技术,通过MATLAB的优秀功能实现,可以大大提高图像处理的效率和准确率。 ### 回答3: 图像去噪是一种常见的图像处理任务,它可以消除图像中的噪声,提高图像的清晰度和质量。matlab提供了基于二维小波变换的图像去噪方法,通过对图像进行小波变换,将图像分解成多个频率域,去除高频部分的噪声,最终将变换后的图像进行逆变换得到去噪后的图像。 该实验可以通过以下步骤来实现: 1. 首先,读入需要去噪的图像,并进行灰度转换。 2. 接着,使用matlab提供的小波变换函数对图像进行小波变换,并根据需要选择小波基函数和分解数。 3. 在小波变换的每一中,进行阈值处理,将高频部分的系数根据设定的阈值进行截断,去除噪声。 4. 进行逆小波变换,将去噪后的频率域数据逆变换回时域数据,得到去噪后的图像。 5. 最后,对比去噪前后的图像,观察去噪效果,并根据需要调整小波基函数、分解数和阈值等参数进行优化。 需要注意的是,小波变换的参数选择对去噪效果有非常重要的影响,需要根据具体情况进行调整。同时,不同的小波基函数对不同类型的图像也有不同的适用性,需要进行实验比较来确定最佳选择。 总之,matlab基于二维小波变换的图像去噪实验是一个非常实用的图像处理技术,在实际应用中具有广泛的应用前景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值