图像降噪算法——Variance Stabilizing Transform / Generalization Anscombe Transform算法

  • 图像降噪算法——Variance Stabilizing Transform / Generalization Anscombe Transform算法
    • 1. 基本原理
    • 2. matlab代码
    • 3. 补充

图像降噪算法——Variance Stabilizing Transform / Generalization Anscombe Transform算法

1. 基本原理

Variance Stabilizing Transform算法指将高斯泊松噪声转化为高斯噪声的一系列算法,对该算法最早的研究开始于1918年,可以说是非常经典了,其在图像降噪上的应用可以参考坦佩雷大学Alessandro Foi组的一系列工作,著名的BM3D算法也是由这个组提出的,这里我们主要介绍其中应用较为广泛的的Generalization Anscombe Transform算法。

首先,我们知道,实际由图像传感器拍摄的图像上的噪声是接近高斯泊松噪声,高斯噪声部分好理解,通常由热噪声造成,而泊松噪声主要是由于光照响应非均匀性造成的,所谓光照响应非均匀性就是说传感器接受光子的不确定性是和信号相关的。下图就展示了高斯泊松噪声的特点,方差曲线随着均值增大而逐渐升高的部分即为泊松噪声,而方差曲线上抖动的部分即为高斯噪声。

  • *高斯泊松噪声数学建模如下:x^=ap+n\hat{x}=a p+n x^=ap+nη=x^−y^\eta=\hat{x}-\hat{y} η=x^−y^​其中η\etaη就是高斯泊松噪声,x^\hat{x}x^为带噪图像,y^\hat{y}y^​为无噪图像,aaa为泊松噪声增益,p∼P(y^/a)p \sim \mathcal{P}(\hat{y} /a)p∼P(y^​/a)为泊松噪声部分,其均值mmm和方差vvv满足m=v=y^/am=v=\hat{y} /am=v=y^​/a**,n∼N(m,σ^2)n \sim \mathcal{N}\left(m, \hat{\sigma}^{2}\right)n∼N(m,σ^2)为高斯噪声部分

我们目前使用的大多数算法,例如NLM, BM3D,都是针对高斯噪声模型设计的,其效果在高斯泊松噪声图像上会大打折扣,如果我们能有这么一种变换将高斯泊松噪声转化为高斯噪声,对高斯噪声降噪后再将图像变换回去,不就非常完美了吗,这种变换就是Generalization Anscombe Transform算法。下面介绍该变换:

正变换:f(x^)={2aax^+38a2+σ^2−am,x^>−38a−σ^2a+m0,x^≤−38a−σ^2a+mf(\hat{x})=\left\{\begin{array}{ll} \frac{2}{a} \sqrt{a \hat{x}+\frac{3}{8} a^{2}+\hat{\sigma}^{2}-a m}, & \hat{x}>-\frac{3}{8} a-\frac{\hat{\sigma}^{2}}{a}+m \\ 0, & \hat{x} \leq-\frac{3}{8} a-\frac{\hat{\sigma}^{2}}{a}+m \end{array}\right. f(x^)={a2​ax^+83​a2+σ^2−am​,0,​x^>−83​a−aσ^2​+mx^≤−83​a−aσ^2​+m​如果我们对增益进行归一化x=x^−ma,σ=σ^ax=\frac{\hat{x}-m}{a}, \sigma=\frac{\hat{\sigma}}{a} x=ax^−m​,σ=aσ^​也就是说如果我们将输入图像归一化为一个单位泊松变量叠加一个均值为零,标准差为σ\sigmaσ的高斯噪声,那么该变换可以简化为fσ(x)={2x+38+σ2,x>−38−σ20,x≤−38−σ2f_{\sigma}(x)=\left\{\begin{array}{ll} 2 \sqrt{x+\frac{3}{8}+\sigma^{2}}, & x>-\frac{3}{8}-\sigma^{2} \\ 0, & x \leq-\frac{3}{8}-\sigma^{2} \end{array}\right. fσ​(x)={2x+83​+σ2​,0,​x>−83​−σ2x≤−83​−σ2​
逆变换
设yyy为降噪后的图像,闭合形式可以近似为fσ(y)−1=14y2+1432y−1−118y−2+5832y−3−18−σ2f_{\sigma}(y)^{-1}= \frac{1}{4} y^{2}+\frac{1}{4} \sqrt{\frac{3}{2}} y^{-1}-\frac{11}{8} y^{-2}+\frac{5}{8} \sqrt{\frac{3}{2}} y^{-3}-\frac{1}{8}-\sigma^{2} fσ​(y)−1=41​y2+41​23​​y−1−811​y−2+85​23​​y−3−81​−σ2当σ\sigmaσ和yyy特别大时,其渐近逆为:fσ(y)−1=14y2−18−σ2f_{\sigma}(y)^{-1}=\frac{1}{4} y^{2}-\frac{1}{8}-\sigma^{2} fσ​(y)−1=41​y2−81​−σ2

我们可以来看下Generalized Anscombe Transform算法正变换后方差如下图(b)所示:

可以看到,当σ=0.01,,1,2,3\sigma=0.01,,1,2,3σ=0.01,,1,2,3时,通过正变换后方差稳定在1左右,而不随yyy发生变化了,也就是通过Generalization Anscombe Transform算法将高斯泊松噪声转变成了高斯噪声

2. matlab代码

这个算法的代码很简单,就不贴在这里了,大家可以去参考matlab代码Denoising software for Poisson and Poisson-Gaussian data,这里有两点需要注意:

  1. Generalization Anscombe Transform如果采用的是归一化形式,在处理图像时需要先对图像进行归一化操作
  2. Generalization Anscombe Transform并没有降噪效果,仅仅是改变了噪声的形态,代码中实际使用的降噪算法还是BM3D或者NLM,具体实验结果大家去看论文就好

3. 补充

  1. Anscombe Transform为Generalization Anscombe Transfrom的特殊形式,Generalization Anscombe Transform是将高斯泊松噪声转换为近似高斯分布,而Anscombe Transform可以将泊松分布转换为近似高斯分布。例如,泊松分布变量x∼P(x^)x \sim \mathcal{P}(\hat{x})x∼P(x^),有m=v=x^m=v=\hat{x}m=v=x^,Anscombe Transform正变换为:A:x→2x+38A: x \rightarrow 2 \sqrt{x+\frac{3}{8}} A:x→2x+83​​Anscombe Transform逆变换为:A−1:y→(y2)2−38A^{-1}: y \rightarrow\left(\frac{y}{2}\right)^{2}-\frac{3}{8} A−1:y→(2y​)2−83​以上形式逆变换为代数逆,该逆变换会给均值引入不友好的偏置,因此还有一个精确无偏逆的闭合形式的近似解:y→14y2+1432y−1−118y−2+5832y−3−18y \rightarrow \frac{1}{4} y^{2}+\frac{1}{4} \sqrt{\frac{3}{2}} y^{-1}-\frac{11}{8} y^{-2}+\frac{5}{8} \sqrt{\frac{3}{2}} y^{-3}-\frac{1}{8} y→41​y2+41​23​​y−1−811​y−2+85​23​​y−3−81​

  2. Genrealization Anscombe Transform的推到过程可以参考博客VST变换

  3. 我们可以从另一个角度来理解高斯泊松噪声这个问题,高斯泊松噪声实际上就是信号强的地方噪声大,信号小的地方噪声小这样一个噪声分布,Generalization Anscombe Transform是通过将不同区域噪声变得一致来解决这个问题,那在设计降噪算法的时候是不是也可以通过在不同区域实施不同强度的降噪水平来解决这个问题呢?

此外,这里我写一个各种算法的总结目录图像降噪算法——图像降噪算法总结,对图像降噪算法感兴趣的同学欢迎参考

图像降噪算法——Variance Stabilizing Transform / Generalization Anscombe Transform算法相关推荐

  1. 图像降噪算法——图像降噪算法总结

    图像降噪算法--图像降噪算法总结 图像降噪算法--图像降噪算法总结 图像降噪算法--图像降噪算法总结 前面这段时间我看了几篇和图像降噪相关的Review,给我的感觉就是SLAM这一研究领域像是一片汪洋 ...

  2. 图像降噪算法——DnCNN / FFDNet / CBDNet / RIDNet / PMRID / SID

    图像降噪算法--DnCNN / FFDNet / CBDNet / RIDNet / PMRID / SID 图像降噪算法--DnCNN / FFDNet / CBDNet / RIDNet / PM ...

  3. 图像降噪算法——小波硬阈值滤波(上)

    图像降噪算法--小波硬阈值滤波(上) 图像降噪算法--小波硬阈值滤波(上) 1. 多分辨率展开 2. 尺度函数 3. 小波函数 4. 小波级数展开 5. 离散小波变换 6. 快速小波变换 7. 图像小 ...

  4. 可复现的图像降噪算法总结——超赞整理

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI算法与图像处理 图像降噪,是最简单也是最基础的图像处 ...

  5. 图像降噪算法——低秩聚类:WNNM算法

    图像降噪算法--低秩聚类:WNNM算法 图像降噪算法--低秩聚类:WNNM算法 1. 基本原理 2. matlab代码 3. 结论 图像降噪算法--低秩聚类:WNNM算法 同样是为了完善自己知识版图的 ...

  6. 图像降噪算法——稀疏表达:K-SVD算法

    图像降噪算法--稀疏表达:K-SVD算法 图像降噪算法--稀疏表达:K-SVD算法 1. 基本原理 2. python代码 3. 结论 图像降噪算法--稀疏表达:K-SVD算法 为了完善下自己降噪算法 ...

  7. 图像降噪算法——时域降噪算法

    图像降噪算法--时域降噪算法 图像降噪算法--时域降噪算法 1.<MeshFLow Video Denoising> 2. <Real-Time Video Denoising On ...

  8. 图像降噪算法——小波硬阈值滤波(下)

    图像降噪算法--小波硬阈值滤波(下) 图像降噪算法--小波硬阈值滤波(下) 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--小波硬阈值滤波(下) 1. 基本原理 关于离散小波变换的原 ...

  9. 图像降噪算法——维纳滤波

    图像降噪算法--维纳滤波 图像降噪算法--维纳滤波 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--维纳滤波 维纳滤波是在频域中处理图像的一种算法,是一种非常经典的图像增强算法,不仅 ...

最新文章

  1. PyTorch 笔记(11)— Tensor内部存储结构(头信息区 Tensor,存储区 Storage)
  2. 2013 ACM/ICPC 亚洲区 杭州站
  3. AD设备覆铜与同网络过孔的连接方式
  4. Linux下的用户和组
  5. java 指定打印机打印_java 指定打印机 进行打印
  6. 关于IE6.7.8.FF兼容的问题
  7. 记忆化搜索 codevs 2241 排序二叉树
  8. 从Excel文件中找出在TXT文件中没有出现的 行之_代码片段
  9. java字段描述符_Java 的方法签名与字段类型表示-[Ljava.lang.String;
  10. KingDZ 变菜鸟,每日一个C#小实例之---玩转鼠标
  11. springMVC实现的crud操作
  12. 彩灯控制器课程设计vhdl_基于VHDL的彩灯控制器的设计
  13. 图片信息用浏览器显示:data:image/png;base64,+图片内容
  14. 《Real-Time Rendering 4th Edition》全文翻译 - 第7章 阴影(下)7.7 ~ 7.10
  15. background图片叠加_java实现图片的叠加效果
  16. 史上最超级KB的10个故事~你撑到第几个才发抖
  17. 从普通类的角度理解java的enum类型,用自定义类来模拟实现enum类的功能
  18. 如何使用api调用AI抠图服务
  19. 免费App开发解决方案 一键生成App
  20. 文件复制软件评测:FastCopy、TeraCopy、ExtremeCopy、Supercopier

热门文章

  1. c# xml html标签,XML文件到html表(循环)C#
  2. 推荐 19 个 github 超牛逼项目!
  3. Java仿百度网盘,拿来学习/搞外快,都是极好的选择
  4. 这 5 个能挣钱的 SpringBoot 项目,真TMD香!
  5. 信息系统项目管理知识--组织级项目管理
  6. Nginx-Nginx配置文件详细说明
  7. 生成JSON数据--官方方法
  8. python开发的模型部署_使用Python部署机器学习模型的10个实践经验
  9. hdu1846巴什博弈(java)
  10. 排序算法系列:选择排序算法