保持结构不变的图像降噪及高斯噪声估计

github地址

保持结构不变的图像降噪

假定图像的区域是同构或者异构的。我们可以逐个处理每个像素,通过检测它的邻域结构类型(异构/同构)来估计像素的真实密度,从而减少噪声。

X(p) X ( p ) 为真实图像, Y(p) Y ( p ) 为被高斯噪声污染的后的观测图像, n(p)N(0,σ2) n ( p ) ∈ N ( 0 , σ 2 ) 为均值为 0 ,方差为 σ2 σ 2 的高斯噪声分布

X(p)=Y(p)+n(p) X ( p ) = Y ( p ) + n ( p )

一个同构的邻域 Nn×n(p) N n × n ( p ) 假设是一个样本大小为 N=n×n N = n × n ,均值为 μ μ ,方差为 σ2 σ 2 的高斯随机变量。

一个异构的邻域则被假设为样本大小为N,满足两个高斯混合分布的变量,分布的先验为 Pi P i ,均值为 μi μ i ,以及相同的方差 σ2i=σ2 σ i 2 = σ 2 , i=1,2 i = 1 , 2 。混合分布的概率密度函数为:

P(x)=1σ2πi=01Piexp{(xμi)22σ2} P ( x ) = 1 σ 2 π ∑ i = 0 1 P i e x p { − ( x − μ i ) 2 2 σ 2 }

最大似然率(maximum likelihood radio test)为

  1. 如果 S2^σ2(1+C) S 2 ^ ≤ σ 2 ( 1 + C )
    邻域 Nn×n(p) N n × n ( p ) 是同构的,其中 S2^ S 2 ^ 是邻域样本 Nn×n(p) N n × n ( p ) 的方差:
    S2^=1NqNn×n(p)(Y(q)1NrNn×n(p)Y(r))2 S 2 ^ = 1 N ∑ q ∈ N n × n ( p ) ( Y ( q ) − 1 N ∑ r ∈ N n × n ( p ) Y ( r ) ) 2

    参量C 由测试的显著性(sigificant level)决定 (例如,接受错误的同构的概率)。下表给出了C的值和对应的显著性。

    如果邻域 Nn×n(p) N n × n ( p ) 是同构的,则像素p的真实值的估计值为邻域所有像素的均值,此时的估计为高斯噪声下的最小无偏估计(最优估计)。即
    X^(p)=1NqNn×n(p)Y(q) X ^ ( p ) = 1 N ∑ q ∈ N n × n ( p ) Y ( q )
  2. 如果邻域异构,则混合分布的先验和均值由前3个采样时刻估计:

μi^=12[β(1)iβ24λ],Pi^=(1)iui¯^c1ui¯^ui,i=0,1 μ i ^ = 1 2 [ β − ( − 1 ) i β 2 − 4 λ ] , P i ^ = ( − 1 ) i u i ¯ ^ − c 1 u i ¯ ^ − u i , i = 0 , 1

i¯=mod(i+1,2)β=c3c1c2c2c21,λ=c1c3c22c2c21 i ¯ = m o d ( i + 1 , 2 ) β = c 3 − c 1 c 2 c 2 − c 1 2 , λ = c 1 c 3 − c 2 2 c 2 − c 1 2

c1=m1,c2=m2σ2,c3=m33m1σ2 c 1 = m 1 , c 2 = m 2 − σ 2 , c 3 = m 3 − 3 m 1 σ 2

mj,j=1,2,3 m j , j = 1 , 2 , 3 Nn×n(p) N n × n ( p ) 的 第j oder sample moments。

mj=1NqNn×n(p)Yj(q) m j = 1 N ∑ q ∈ N n × n ( p ) Y j ( q )

有了模型的估计参量,由贝叶斯方法可以得到两个混合分布的阈值 Tc T c
Tc=μ^0+μ^12+σ2μ^1μ^0lnP^0P^1 T c = μ ^ 0 + μ ^ 1 2 + σ 2 μ ^ 1 − μ ^ 0 l n P ^ 0 P ^ 1

此时像素p的估计值为
X^p={μ^1,ifY(p)>Tcμ^0,otherwise X ^ p = { μ ^ 1 , i f Y ( p ) > T c μ ^ 0 , o t h e r w i s e

当信噪比 SNR=|μ0μ1|σ S N R = | μ 0 − μ 1 | σ 大于2时,此算法能够有效的降噪同保持图像的结构。降噪的结果依赖于观测图像噪声方差 σ2 σ 2 的估计,以及 N, N可以定义或者利用噪声方差来估计。N越大,细的特征如线和角特征容易丢失。N越小,平滑效果越不明显。

matlab代码实例如下,完整代码(github)

RGB=imread('saturn.png');
I=rgb2gray(RGB);
noise=sqrt(0.025)*randn(size(I)) + 0;
NI=im2double(I)+noise;
figure,imshow(NI);title('stained by gaussian noise Image');
[SI,SNR]=ImageReduNoise(NI,0.025,'NeigborHoodSize',[7,7],'SigLevel','SigLevel3');
title('smooth Image')
K=wiener2(NI,[7,7]);
figure,imshow(K);title('wiener filter')

原图以及对原图加上方差为0.025的高斯噪声后的图像如下图所示:
original image
gaussian noise
当N取7,显著性为0.001时,降噪的结果如下图所示:
reduce noise
维纳自适应滤波器降噪结果如下图所示,可以看到效果要比维纳自适应滤波更好。
wiener filter

高斯噪声方差估计

此处讨论的是满足高斯分布的加性噪声
1. 利用均匀区域估计高斯噪声参数

选取图像中比较“平坦”的子带区域,此处被认为是均匀的,没有边缘存在,计算其方差和均值。将其直方图和估计出来的高斯分布形状比较。如果接近的,那么计算出的均值和方差就是高斯噪声的估计参数。

matlab代码实例如下,

I=imread('cameraman.tif');
% 加入高斯噪声方差为0.01,均值为0
bin=256;
noise=sqrt(0.01)*randn(size(I)) + 0;
% 图像转为double型和噪声叠加
NI=im2double(I)+noise;
figure,imshow(NI);
% 人工选择“平坦”区域
NIC=imcrop(NI);
% stastic mean and variance
[p,xvalue]=hist(double(NIC(:)),bin);
p=p./length(NIC(:));
u=sum(xvalue.*p);
var=sum(bsxfun(@minus,xvalue,u).^2.*p);
% 比较直方图和高斯分布
pdf=gaussmf(xvalue,[sqrt(var),u]).*((2*pi*var)^(-1/2));
figure,bar(pdf);
title('高斯分布');
figure,bar(p);title('直方图分布');

形状如图所示,两者很接近,此时高斯分布的方差估计值是0.0099和噪声实际方差0.01的误差为0.0001。均值估计值是0.0515,误差为0.0515。

  1. 基于滤波

    我们知道边缘和噪声的二阶微分值都较大,但是不同的是噪声对laplacian算子比较敏感。因而可以用两个不同laplacian滤波器,对噪声图像滤波之后做差。由于边缘部分的滤波结果差不多,抵消了,剩下的就是噪声部分。两个Laplacian滤波器滤波后做差效果如下图所示:

自定义滤波器N滤波结果

具体算法:噪声图像imageI大小为[W,H]。两个Laplacian滤波器,L1和L2,估计噪声方差为$\sigma_n$
L1L2

σn=π216(W2)(H1)imageI|IN| σ n = π 2 1 6 ( W − 2 ) ( H − 1 ) ∑ i m a g e I | I ∗ N |

注意此方法只能估计均值为0的高斯分布噪声的方差。
matlab代码实例如下:

I=imread('cameraman.tif');
% 加入高斯噪声方差为0.01,均值为0
noise=sqrt(0.01)*randn(size(I)) + 0;
% 图像转为double型和噪声叠加
NI=im2double(I)+noise;
figure,subplot(121),imshow(I);title('原图');
subplot(122),imshow(NI);title('加噪声')
h1=fspecial('laplacian',0);%滤波器L1
h2=fspecial('laplacian',1);%滤波器L2
N=(h2-h1)*2;
imI=imfilter(NI,N);
%估计噪声方差
varn=sum(abs(imI(:)))./(size(imI,1)-2)./(size(imI,2)-2)./6.*sqrt(pi/2);
varn=varn.^2;

最后估计的varn值为0.0108,误差为0.0008

参考文献

[1]. Haris K, Efstratiadis S N, Maglaveras N, et al. Hybrid image segmentation using watersheds and fast region merging.[J]. IEEE Transactions on Image Processing A Publication of the IEEE Signal Processing Society, 1998, 7(12):1684-1699.

[2]. Immerkaer J. Fast noise variance estimation[J]. Computer vision and image understanding, 1996, 64(2): 300-302.

[3]冈萨雷斯. 数 字 图 像 处 理 (第 二 版)[J]. 电 子 工 业 出 版 社, 2007.

[4]Haris K, Tziritas G, Orphanoudakis S. Smoothing 2-D or 3-D images using local classification[C]//Proc. EUSIPCO. 1994

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值