BM3D算法介绍「建议收藏」

BM3D算法介绍「建议收藏」论文名称:Imagedenoisingbysparse3Dtransform-domaincollaborativefiltering下载地址:https://webpages.tuni.fi/foi/GCF-BM3D/BM3D_TIP_2007.pdfhttps://webpages.tuni.fi/foi/GCF-BM3D/BM3D_TIP_2007.pdf目录基本原理FlowchartofBM3Dstep1step2FastAndEfficient.

大家好,又见面了,我是你们的朋友全栈君。

论文名称:Image denoising by sparse 3D transform-domain collaborative filtering

下载地址:https://webpages.tuni.fi/foi/GCF-BM3D/BM3D_TIP_2007.pdficon-default.png?t=M0H8https://webpages.tuni.fi/foi/GCF-BM3D/BM3D_TIP_2007.pdf

目录

基本原理

Flowchart of BM3D

 step1

step2

Fast And Efficient Realization

 Parameter selection

C-BM3D 

 Results


 

基本原理

        图像做块间匹配,把多张相似的2D图像块组成3D组,对3D组进行域变换,利用域变换上系数的稀疏性,进行滤波,然后再逆向3D域变换,得到滤波后的图像块,放回原来的位置,每个像素可能得到多次滤波的结果,最后进行加权得到降噪的图像。 

Flowchart of BM3D

分两步进行,第一步得到基础估计,第二步得到最终估计,分两步的优势是

1、用基础估计的结果做块匹配,匹配的结果更加准确

2、使用基本估计作为经验维纳滤波的导频信号,比对噪声图像做3D域变换和hard-threshold更有效、更准确 

BM3D算法介绍「建议收藏」

BM3D算法介绍「建议收藏」

BM3D算法介绍「建议收藏」 

 step1

块间匹配距离计算

BM3D算法介绍「建议收藏」

 由于噪声的存在,不考虑重叠的情况,距离的期望和方差如下,其方差为O(σ4)

BM3D算法介绍「建议收藏」

由于实际块匹配时会出现块间重叠,导致一些理想间距大于阈值的块当作了相似块,而小于阈值的却被丢弃了,为了解决这个问题,先对2D块做线性域变换,然后做hard-thresholding,再反变换回来,如下

BM3D算法介绍「建议收藏」 

 间距小于某个阈值,认为是相似块,这些相似块组成3D组,组里块的顺序不重要

BM3D算法介绍「建议收藏」

对3D组做域变换,在变换域上做hard-threshold操作,然后再做逆变换,得到基础估计结果

BM3D算法介绍「建议收藏」 

加权权重和分块估计的方差成反比,NharXR是hard-threshold之后非0系数的数目

BM3D算法介绍「建议收藏」 

根据权重进行加权

BM3D算法介绍「建议收藏」 

step2

对基础估计的结果做块匹配,组成一个3D组,同时,根据匹配结果,把原来的噪声图像块同样组成一个3D组,把两个3D组叠加在一起.

BM3D算法介绍「建议收藏」 

计算维纳系数和维纳滤波

BM3D算法介绍「建议收藏」 

 BM3D算法介绍「建议收藏」

 同样的,加权权重和分块估计的方差成反比

BM3D算法介绍「建议收藏」

加权滤波

BM3D算法介绍「建议收藏」 

Fast And Efficient Realization

1、在进行块匹配过程中,不是滑窗逐像素进行匹配,而是已一定步长进行匹配,可以减少计算量

2、构成3D组的时候,限制最大的匹配块数目 搜索匹配块时,限制最大的搜索区域

3、块匹配时,使用predictive search(具体可能要看下代码如何实现)

4、匹配时已经得到了2D变换,构成3D组时,再做1D变换就得到3D变换,不需要直接做3D变换

5、两个步骤中,进行hard_thresholding和Wiener_filtering时顺便把权重计算好,存在buffer里,最后Aggregation时就可以直接算

6、使用Kaiser window来减少边界效应 

每个像素的复杂度(计算量很大)

BM3D算法介绍「建议收藏」 

 Parameter selection

噪声没那么严重时,λ2d=0,窗口大小N1=8,严重时为λ2d=2,N1=12

还分析了各种变换的选,2D变换用哪个,1D变换用哪个比较好,没有去细看了, 反正最后的1D是使用Haar,2D变换用哪个好像关系不大,一般可能都是用DCT了

BM3D算法介绍「建议收藏」

C-BM3D 

处理彩色图像时,把RGB转到YUV,Y通道进行匹配,匹配的结果直接在UV分量上使用 

BM3D算法介绍「建议收藏」

 Results

BM3D算法介绍「建议收藏」

BM3D算法介绍「建议收藏」 

BM3D算法介绍「建议收藏」 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138901.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • afc2add是什么_appsync怎么使用

    afc2add是什么_appsync怎么使用APPsync是iPhone、iPad、iPodtouch越狱后最常安装的补丁,安装后可以绕过系统验证,随意安装运行破解的ipa软件。软件类型:Cydia软件软件格式:deb对于…

  • 团队解散,我们该何去何从?

    团队解散,我们该何去何从?写在最前:纯属吐槽,随笔,勿喷!就在前些天,下班回家的路上,看到群信息,说:听说、听说京东裁员了~,图片来源于网络也是在上上月,也一度被传的沸沸扬扬的:阿里、京东、华为相继被曝停止社招,新闻也是满天飞舞,不管是裁员,还是停止社招,这些事情没有落在亲身经历,没有落在自己身上我们都会觉得不痛不痒,毕竟一个旁观者,永远无法感受当事人的喜怒哀乐~。俗话说:人无远虑必有近忧,假如当你遇上裁员,…

  • MySQL的锁机制_线程安全与锁机制

    MySQL的锁机制_线程安全与锁机制一、锁的作用数据库使用锁是为了支持对共享资源的并发访问,同时保证数据的完整性和一致性。二、锁的类型2.1全局锁全局锁意味着对整个数据库实例加上锁。通常使用的是全局读锁——Flushtableswithreadlock(FTWRL)。使用这个命令,可以使整个库处于只读状态,其他线程的无论使用DML、DDL甚至是事务的提交语句都会无法正常执行。使用场景做全库逻辑备份,对所有的表数据进行锁定,保证数据的一致性。问题但是FTWRL的全局锁方案有比较严重的缺

  • 编程是程序设计吗_做软件必须先设计再编程吗

    编程是程序设计吗_做软件必须先设计再编程吗常在电脑前工作,总有那么几天会对未来迷茫,可能是每天静止的坐着,感觉自己在变老,而电脑总想个孩子,每天能冒出无数个想法,让你去琢磨它,跟上它的节奏,真有点TheBigBangTheory的味儿,

  • php分享朋友圈链接变文字,微信朋友圈怎么转发别人的文章(链接、视频、图片、文字)…「建议收藏」

    php分享朋友圈链接变文字,微信朋友圈怎么转发别人的文章(链接、视频、图片、文字)…「建议收藏」小编每天都有不定时逛微信朋友圈的习惯,嘿嘿,估计正在看此文的你也跟小编一样的吧。朋友圈吸引我们的是上面常能看到很多娱乐、搞笑或有益的帖子。有福同享,独乐不如众乐嘛,SO,偶时也会手痒地转发一下别人发的好文章,与更多人分享。目前微信朋友圈里的链接文章、文字或图片不能一键转发,不过若要转发,也不是难事。如果你还不知道怎么转发别人的文章的话,此文就能帮到你。朋友圈发布的有链接资源文章/视频,图文,或纯文…

  • navicat激活error on generate activecode【最新永久激活】

    (navicat激活error on generate activecode)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号