一、BM3D算法图像去噪简介

1 BM3D去噪算法概述
BM3D算法借鉴了非局部均值(NL-Means)方法的非局部块匹配思想,在此基础上,将图像相似块堆叠成三维矩阵后进行协同滤波处理,再将处理结果聚合到原图像块的位置。BM3D算法由两个大的步骤组成,即初步估计和最终估计阶段,每一阶段又分别包含三个部分:块匹配、协同滤波和聚合。

1.1 初步估计阶段
(1)块匹配分组
块匹配是寻找图像相似块的一个过程。首先将含有噪声的图像分成若干个大小为N´N的图像块。设参考块为Zx R,待匹配的图像块为Zx,用两个块之间的欧氏距离定义块之间的相似性,距离越短则说明它们之间的相似性越高。设定一个阈值t,如果两块之间的距离小于该阈值,则认为它们是相似的。然后将寻找出来的图像块和参考块堆叠成为一个三维矩阵。块的匹配和堆叠过程如图1所示。

(2)协同滤波
先对堆叠后的三维矩阵进行三维变换,然后进行硬阈值滤波(Hard thresholding),将小于阈值的系数置0,之后进行三维逆变换得到初步处理后的图像。

图1 块匹配和堆叠过程示意图
(3)聚合
由于协同滤波后的估计块往往有重叠,因此需要进行加权平均的信息整合,即通过加权平均所有重叠块的预估值来计算真实图像的初步估计[10]。

1.2 最终估计阶段
(1)块匹配分组
将初步估计的图像块和含噪图像块分别堆叠成两个三维矩阵,具体过程和初步估计的分组方法相同。

(2)协同滤波
将上一步得到的矩阵分别进行三维变换,并且将初步估计阶段所得值作为真实信号同含噪图像执行维纳滤波(Wiener filtering)操作,再进行三维逆变换。

(3)聚合
对上一步得到的值进行加权平均,得到最终估计的图像。

本文将BM3D算法运用到医学CT图像去噪中,并且在实验中同均值滤波、维纳滤波、中值滤波等算法做了对比,实验结果表明,在低剂量CT图像去噪中,BM3D算法取得了较好的效果。

3 算法的具体实现
对于带有噪声的图像z (x),其加性噪声可以用公式(1)获得。

其中y (x)代表没有被噪声污染的图像,n (x)代表加性噪声,x是图像的坐标点,Ω代表整幅图像的像素点集合,后文中的硬阈值滤波和维纳滤波分别缩写为ht和wie。

在理想情况下,若原始图像是y,则在块匹配过程中图像块Zx R和Zx之间的距离计算如公式(2)。

其中x R和x分别表示两个图像块左上角的坐标,(N1ht)2是图像块的大小,是L2范数。但实际上,理想的图像y不能直接获得,只有含噪图像可用,故按公式(3)计算距离。

理论上距离服从非中心卡方分布,它的均值和方差满足公式(4)。

实际上方差接近O (σ4),如果方差σ较大或者图像分块较小时,可能会发生分组错误。解决的办法是先进行二维线性变换,再进行硬阈值滤波处理使系数收缩,此时的距离由公式(5)计算。

这里的T2htD、γ’分别是二维线性变换和硬阈值滤波操作。由公式(6)求得参考块Zx R的相似图像块集合。

其中τhtmat ch是预设的阈值。这些相似块与参照块被堆叠成为一个三维组,记作ZSxhRt。

然后用公式(7)对三维矩阵执行硬阈值滤波操作。

其中是可分解的三维变换,先进行一轮小波或DCT二维变换,然后进行一维哈达玛(Hadamard)变换。
针对像素存在多个估算值的情况,进一步用公式(8)计算重复的像素权重。

其中σ2是噪声方差,Nhx aRr是不为零元素的个数。再用公式(9)求加权平均就得到了第一阶段的估计图像。

经过这一阶段处理后,图像中的噪声很大程度上已经被消除。在最终估计阶段,相似块的集合可以用公式(10)表示。

得到两组三维矩阵,一组来自初估后的图像,一组来自噪声图像,分别记作,之后的处理同第一阶段的类似,不过要用维纳滤波取代硬阈值滤波,数学式如公式(11)。

滤波的收缩系数如公式(12)。

这个阶段也可能有像素点重叠发生,可运用以下权重公式(13)。

求得最终的估计图像如公式(14)。

二、部分源代码

三、运行结果




四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]王志刚,冯云超.BM3D算法在低剂量CT图像去噪中的应用[J].电脑与电信. 2020,(11)

【图像去噪】基于matlab BM3D算法图像去噪【含Matlab源码 1779期】相关推荐

  1. 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】

    一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...

  2. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  3. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  4. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

  5. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

  6. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  7. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  8. 【Matlab人脸识别】KL变换人脸识别【含GUI源码 859期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]KL变换人脸识别[含GUI源码 859期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  9. 【Matlab指纹识别】指纹识别门禁系统【含GUI源码 1692期】

    一.代码运行视频(哔哩哔哩) [Matlab指纹识别]指纹识别门禁系统[含GUI源码 1692期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继 ...

  10. 【Matlab指纹识别】指纹识别匹配门禁系统【含GUI源码 587期】

    一.代码运行视频(哔哩哔哩) [Matlab指纹识别]指纹识别匹配门禁系统[含GUI源码 587期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

最新文章

  1. redissession有容量上限吗_空气炸锅值得买吗?
  2. Mybatis 使用的 9 种设计模式,真是太有用了
  3. 当物联网实时工作时,城市才是“智能”的
  4. lm-sensors工具安装和使用
  5. c语言 while 教案,c语言电子教案(刘丹)
  6. python函数太多_numpy Loadtxt函数似乎消耗了太多内存
  7. why SAP OData default 100 entries are returned
  8. 《那些年啊,那些事——一个程序员的奋斗史》——63
  9. 苹果账号:个人,公司,企业,教育,
  10. Mongodb05 - 数据操作(删除、游标)
  11. firewalld配置与使用
  12. 排队问题解题思路_教育随笔|数学之排队问题
  13. sql server的增删改查语句
  14. winrar压缩软件免费版
  15. I/O模型(同步、非同步、阻塞、非阻塞)总结
  16. 阿里云国际站如何注册?
  17. Android App专项测试-压力测试篇
  18. FreeRTOS学习,适用于FreeRTOS初学者,FreeRTOS整体知识框架
  19. Restoring Backups Created Using Older Versions of RMAN
  20. 南京智慧城市建设显成效 市民卡发卡量突破960万张

热门文章

  1. MySQL-第二篇SQL语句基础(1)语句分类及DDL语句
  2. Qt5_自定义处理Windows消息函数
  3. newaxis取出某一行或列数据以及增加维度
  4. 190707每日一句,一堂重要的人生之课Let it go, 穷则变变则通
  5. 物联网应用中的数字孪生——一种实现物联网数字孪生的全面的解决方案
  6. 181008有道扇贝每日一句
  7. 扇贝有道180927每日一句
  8. 德国铁路公司基于模型的铁路系统设计路线图 - 基于模型的系统开发在铁路部门的应用
  9. Atitit 编程语言的类型系统 目录 1.2. 动态类型语言(Dynamically Typed Language): 1 1.3. 静态类型语言(Statically Typed Languag
  10. Atitit 并发技术的选项 attilax总结 艾龙 著 1. 三大并发模型 1 2. 从可读性考虑 优先使用 并行工作者 多线程模式,不要使用异步流水线模式 2 2.1. 多线程模式方便全局