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

举报
海神之光 发表于 2022/05/28 23:07:08 2022/05/28
【摘要】 一、BM3D算法图像去噪简介 1 BM3D去噪算法概述 BM3D算法借鉴了非局部均值(NL-Means)方法的非局部块匹配思想,在此基础上,将图像相似块堆叠成三维矩阵后进行协同滤波处理,再将处理结果聚合...

一、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)。
在这里插入图片描述

二、部分源代码




  
 
  • 1
  • 2

三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、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)

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/123488875

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。