图像处理之小波变换的应用

您所在的位置:网站首页 对图像进行小波变换的条件是什么 图像处理之小波变换的应用

图像处理之小波变换的应用

2024-07-06 21:21| 来源: 网络整理| 查看: 265

1. 部分常用的小波变换函数 dwt2:实现一级二维离散小波变换 [ca,ch,cv,cd] = dwt2(Image, 'wavename'); % Image: 待分解图像 % wavename: 小波函数,如'db4'、'sym5' % ca: 分解得到的低频分量 % ch: 分解得到的水平高频分量 % cv: 分解得到的垂直高频分量 % cd: 分解得到的对角高频分量 idwt2:实现一级二维离散小波逆变换 Image = dwt2(ca,ch,cv,cd, 'wavename'); % Image: 小波重构得到的图像 % wavename: 小波函数,如'db4'、'sym5' % ca: 小波变换得到的低频系数 % ch: 小波变换得到的水平高频系数 % cv: 小波变换得到的垂直高频系数 % cd: 小波变换得到的对角高频系数 wavedec2:多级二维离散小波分解 [c, s] = wavedec2(Image, Num, 'wavename'); % Image: 待分解图像 % Num: 分解级数 % wavename: 小波函数,如'db4'、'sym5' % c: 低频系数、水平高频系数、垂直高频系数、对角高频系数组成的向量 % s: 低频系数、水平高频系数、垂直高频系数、对角高频系数的长度 waverec2:多级二维离散小波重构 Image = waverec2(c, s, 'wavename'); % Image: 小波重构得到的图像 % wavename: 小波函数,如'db4'、'sym5' % c: 低频系数、水平高频系数、垂直高频系数、对角高频系数组成的向量 % s: 低频系数、水平高频系数、垂直高频系数、对角高频系数的长度 appcoef2:提取小波分解的低频系数 A = appcoef2(c, s, 'wavename', N); % A: 低频系数 % wavename: 小波函数,如'db4'、'sym5' % N: 级数 % c: 低频系数、水平高频系数、垂直高频系数、对角高频系数组成的向量 % s: 低频系数、水平高频系数、垂直高频系数、对角高频系数的长度 detcoef2:提取小波分解的高频系数 [H,V,D] = detcoef2('all', c, s, N); % A: 低频系数 % N: 级数 % H: 水平高频系数 % V: 垂直高频系数 % D: 对角高频系数 2. 基于小波变换的图像降噪(阈值法)

     基干阈值的降噪方法是 按一定的规则(或阈值化)将小波系数划分成两类∶重要
的、规则的小波系数和不重要的或受噪声干扰的小波系数,并舍弃不重要的小波系数然后重构去噪后的图像。      常用的阈值函数有硬阈值和软阈值函数:

硬阈值方法指的是设定阈值,小波系数绝对值大干阈值的保留,小干阈值的置零,这样可以很好地保留边缘等局部特征,但会出现失真现象;软阈值方法将较小的小波系数置零,较大的小波系数按一定的函数计算,向零收缩,其处理结果比硬阈值方法的结果平滑,但因绝对值较大的小波系数减小,会损失部分高频信息,造成图像边缘的失真模糊。 2.1 带有高斯噪声的图像去噪 %% %小波去噪 clc, clear, close all; Image = imread('peppers.jpg'); subplot(231),imshow(Image), title('原图'); noiseImageg = imnoise(Image, 'gaussian'); %添加高斯噪声 subplot(232),imshow(noiseImageg), title('添加高斯噪声的图像'); noiseImages = imnoise(Image, 'salt'); %添加椒盐噪声 subplot(233),imshow(noiseImages), title('添加椒盐噪声的图像'); [c, s] = wavedec2(noiseImageg,2,'sym5'); %2层小波分解 %函数自动生成小波消噪或压缩的阈值选取方案 %'den': 信号消噪; 'wv': 小波分解 %'cmp': 信号压缩; 'wp': 小波包分解 %thr: 函数选择的阈值,sorh: 阈值使用方式,Sorh=s为软阈值;Sorh=h为硬阈值 %keepapp: 是否对近似分量进行阈值处理。可选为0或1 [thr, sorh, keepapp] = ddencmp('den', 'wv', noiseImageg); %函数wdencmp用于一维或二维信号的消噪或压缩 %'gbl': 表示每层采用同一个阈值进行处理 %'lvd': 表示每层采用不同的阈值进行处理 [denoiseI, cxc, lxc, perf0,perf12] = wdencmp('gbl',c,s,'sym5',2,thr, sorh, keepapp); subplot(234),imshow(denoiseI/255), title('降噪后的图像'); sigma = std(c); thresh = 2*sigma; csize = size(c); c(find(abs(c)thresh); c(pos1) = (pos1) - thresh; %大系数向零收缩 pos2 = find(c


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3