第4章 实验与仿真
ind_nz = find( m ~= 0); X = x;
for i = row_min : row_max for j = col_min : col_max
temp = x( i-(dim1-1)/2:i+(dim1-1)/2, j-(dim2-1)/2:j+(dim2-1)/2); element = sort( temp(ind_nz) );
X(i, j) = element( round( size(element, 1)/2 ) ); end end
4.2 基于小波变换的指纹图像去噪算法仿真实验
为了验证新算法在指纹图像去噪中的有效性和优越性,本文选用了小波变换对指纹图像进行仿真实验,在实验仿真中分别对指纹图像加入不同参数的高斯噪声和椒盐噪声,并对仿真的结果进行对比分析。在小波变换的仿真过程中,分别采用不同策略的软、硬阈值函数方法对指纹图像进行去噪处理,并将基于传统经典算法中值滤波和均值的指纹图像去噪效果与小波变换的去噪效果进行对比分析。本文的指纹图片分别选自FVC2004指纹库中的101_8.tif;实验环境为MATLAB 2012a。
4.2.1 实验仿真及结果分析
下面首先将原始指纹图像中加入方差为0.005的高斯噪声,然后利用基于不同策略的软、硬阈值对指纹图像进行去噪处理,并给出具体的不同方法均方差值用于对比说明,具体仿真结果图,如图4.5和4.6所示。
(a)原始图像 (b)加入方差0.005高斯噪声 (c)Donoho硬阈值 (d)Donoho软阈值
图4.9(a) 基于Donoho策略小波变换实验仿真图(109_6.tif)
16
第4章 实验与仿真
(a)原始图像 (b)加入方差0.005高斯噪声 (c)Donoho硬阈值 (d)Donoho软阈值
图4.10(b) 基于Donoho策略小波变换实验仿真图(101_8.tif)
(a)原始图像(b)加入方差0.005高斯噪声(c)BirgeMassart硬阈值(d)BirgeMassart软阈值
图4.11(a) 基于Birge-Massart小波变换实验仿真图(109_6.tif)
(a)原始图像(b)加入方差0.005高斯噪声(c)BirgeMassart硬阈值(d)BirgeMassart软阈值
图4.12(b) 基于Birge-Massart小波变换实验仿真图(101_8.tif)
表 4.1(b) 两种策略的均方差对比(109_6.tif) 图像名称 高斯 109_6.tif Donoho 软阈值 77.0806 Donoho 硬阈值 77.0986 Birge-Massart 软阈值 78.774169 Birge-Massart 硬阈值 77.0015 表 4.2(a) 两种策略的均方差对比(101_8.tif) 图像名称 高斯 101_8.tif Donoho 软阈值 77.6463 Donoho 硬阈值 77.7219 Birge-Massart 软阈值 78.0720 Birge-Massart 硬阈值 77.5937 从上面的实验方针结果及不同方法的均方值比较可以看出,利用不同策略的小波变换都可以有效的去除混入原始指纹图像的高斯噪声信息,改善图像的质量,通过均方值的对比分析,可以看出在该图像的情况,利用Birge-Massart软阈值可以更好的改善图像质量,整体上两种方法图像改善程度上并没有较大差距,建议在指纹图像的高斯噪声处理过程中,进一步针对不同策略的阈值进行选择。
17
第4章 实验与仿真
下面首先将原始指纹图像中加入方差为0.02的椒盐噪声,然后利用基于不同策略的软、硬阈值对指纹图像进行去噪处理,并给出具体的不同方法均方差值用于对比说明,具体仿真结果图,如图4.7和图4.8所示。
(a)原始图像 (b)加入密度0.02椒盐噪声 (c)Donoho硬阈值 (d)Dononho软阈值
图4.13(a) 基于Donoho策略小波变换实验仿真图(109_6.tif)
(a)原始图像 (b)加入密度0.02椒盐噪声 (c)Donoho硬阈值 (d)Dononho软阈值
图4.14(b) 基于Donoho策略小波变换实验仿真图(101_8.tif)
(a)原始图像 (b)加入密度0.02椒盐噪声(c)BirgeMassart硬阈值(d)BirgeMassart软阈值
图4.15(a) 基于Birge-Massart小波变换实验仿真图(109_6.tif)
(a)原始图像 (b)加入密度0.02椒盐噪声(c)BirgeMassart硬阈值(d)BirgeMassart软阈值
图4.16(b) 基于Birge-Massart小波变换实验仿真图(101_8.tif)
18
第4章 实验与仿真
表4.3(a) 两种策略的均方差对比(109_6.tif) 图像名称 椒盐 Donoho 软阈值 72.2130 Donoho 硬阈值 70.3915 Birge-Massart 软阈值 76.9254 Birge-Massart 硬阈值 74.4105 109_6.tif 图像名称 椒盐 101_8.tif 表4.4(b) 两种策略的均方差对比(101_8.tif) Donoho 软阈值 71.6984 Donoho 硬阈值 69.9901 Birge-Massart 软阈值 77.0205 Birge-Massart 硬阈值 74.1302 从表4.2的数据仿真结果可以看出,基于Donoho公式的软、硬阈值的指纹图像去噪,不能很好的满足椒盐噪声的去除目的,在去除后的图像中,仍然残留较多的椒盐噪声,但是经过Birge-Massart策略进行去噪处理后,消除了较多的噪声,效果较Donoho有较大的改善,且均方差也较第一种方法较优,因此,建议在椒盐噪声混入的指纹图像处理中,采用Birge-Massart策略的小波变换进行指纹图像处理。
4.2.2小波变换仿真程序
1) Donoho策略小波变换实验程序
function thr = Donoho(x)
%用Donoho通用阈值公式计算阈值 x为要进行处理的图像 % thr = delta * sqrt( 2 * log(n)) % n为信号的长度或尺寸
% delta = MAD / 0.6745 -经验公式,其中MAD为小波分解后高子带系数的中值 n = prod( size(x) ); %图像尺寸 %计算delta
[C, S] = wavedec2(x, 1, 'db1'); %小波分解 d = C( prod( S(1,:) ) + 2 * prod( S(2,:) ) + 1 : end); %HH子带系数 delta = median( abs(d) ) / 0.6745; %计算阈值
thr = delta * sqrt(2*log(n));
2) Birge-Massart小波变换实验程序
function thr = Birge_Massart(c, s) %用Birge-Massart策略估计阈值
19
第4章 实验与仿真
% 给定分解层数j,对j+1及更高层,所有系数保留
% 对第i层(1<=i<=j),保留绝对值最大的n_i个系数,n_i由下式确定 % n_i = M/(j+2-i)^alpha
% 其中M和alpha为经验系数,缺省情况下M取第一层分解后的系数长度L(1) % 一般情况下,M满足 L(1)<=M<=2L(1)
% alpha的取值因用途不同,压缩情况下一般取alpha=1.5,降噪一般取alpha=3 %设定alpha、M和j的值 alpha = 3; M = prod(s(1, :)); j = size(s, 1) - 2; %计算每层的阈值 for i = 1:j
n = round( M/(j+2-i)^alpha ); %每层保留的系数个数 D = detcoef2('compact', c, s, i); %提取第i层的所有细节系数 if n >= size(D)
thr(:, i) = zeros(3, 1); else
D = sort(abs(D)); %排序
thr(i) = D(end-n); %设置第i层的阈值
end end
4.3 经典算法与小波变换算法对比分析
为了更好的说明本文所采用的经典算法与小波变换算法在指纹噪声去除中效果的对比,将两类算法针对同一图像的去噪均方比进行比较,比较具体如下两表所示。
表4.5(a) 高斯噪声下的两类算法对比分析(109_6.tif) 图像名称 混入高斯噪声 Donoho 软阈值 77.0806 Donoho 硬阈值 77.0986 Birge-Massart 软阈值 78.774169 Birge-Massart 硬阈值 77.0015 69.5934 中值滤波 109_6.tif 图像名称 表4.6(b) 高斯噪声下的两类算法对比分析(101_8.tif) Donoho Donoho Birge-Massart Birge-Massart 中值滤波 20