BM3D算法「建议收藏」

BM3D算法「建议收藏」BM3D(Block-matchingand3Dfiltering,3维块匹配滤波)2007-TIP-Imagedenoisingbysparse3Dtransform-domaincollaborativelteringNL-means(空间域处理)非局部均值算法p像素的值的大小就应该为q1q2q3每个与p对应房间(像素)值的加权平均,这样就对P图像斑块完成了降噪的过程,类似一个基于大斑块的高斯滤波算法。BM3D把空间域和变换域的降噪方法结合起来BM3D该..

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

BM3D(Block-matching and 3D filtering,3维块匹配滤波)
2007-TIP-Image denoising by sparse 3D transform-domain collaborative ltering

NL-means (空间域处理)
非局部均值算法
 BM3D算法「建议收藏」
p像素的值的大小就应该为q1q2q3每个与p对应房间(像素)值的加权平均,这样就对P图像斑块完成了降噪的过程,类似一个基于大斑块的高斯滤波算法。

 

BM3D
把空间域和变换域的降噪方法结合起来
BM3D该算法通过相似判定找到与参考块相近的二维图像块,并将相似块按照组合成三维群组,对三维群组进行协同滤波处理,再将处理结果聚合到原图像块的位置。

把分好的图像斑块“摞起来”,形成一个3D的“块”(Block),在每一层中进行二维变换,变换到频率域,此外,在第三个维度,也就是每一层的对应的房间(像素)上进行一维变换,变换之后,按照非局部均值的思想,对斑块在频率域进行降噪处理,(其实是对像素值的加权平均),再对经过变换之后图像斑块,进行“硬阈值”处理,处理剔除不合格像素值,在经过反三维变换变换为空间域,再对图像进行块匹配,聚合至原来每个块的位置
https://zhuanlan.zhihu.com/p/81856526
主要计算量:(1)搜索匹配块(,做滤波) (2)计算权值 (3)加权平均(相当于滤波)(聚合)

图像去噪算法:NL-Means和BM3D

BM3D算法总共有两大步骤,分为基础估计(Step1)和最终估计(Step2):
 
在这两大步中,分别又有三小步:相似块分组(Grouping),协同滤波(Collaborative Filtering)和聚合(Aggregation)。

Stpe1:基础估计
(1) Grouping:寻找若干个差异度最小的块,并把这些块整合成一个3维的矩阵
(2) Collaborative Filtering:
首先将每个三维矩阵中的二维的块(即噪声图中的某个块)进行二维变换,可采用小波变换或DCT变换等,通常采用小波BIOR1.5。
在矩阵的第三个维度进行一维变换,通常为阿达马变换(Hadamard Transform)。
变换完成后对三维矩阵进行硬阈值处理,将小于阈值的系数置0,然后通过在第三维的一维反变换和二维反变换得到处理后的图像块。
(3) Aggregation:分别将这些块融合到原来的位置,每个像素的灰度值通过每个对应位置的块的值加权平均,权重取决于置0的个数和噪声强度。

Step2:最终估计
(1) Grouping:得到两个三维数组:噪声图形成的三维矩阵Qbasic(P)和基础估计结果的三维矩阵Q(P)。
(2) Collaborative Filtering:两个三维矩阵都进行二维和一维变换,这里的二维变换通常采用DCT变换以得到更好的效果。
(3) Aggregation:与第一步中一样

BM3D的算法复杂度是要高于NL-Means的,应该大概在NL-Means的3倍左右。

BM3D甚至宣称它可以得到迄今为止最高的PSNR。从最终的结果也可以看出来,BM3D的效果确实要好于NL-Means,噪声更少,能够更好地恢复出图像的细节。在效果这一点上BM3D胜。无愧于State-of-the-art这一称号。
http://wenhuix.github.io/research/denoise.html

处理灰度图的BM3D以及它的变体CBM3D(彩色图)、VBM3D(时域)是图像去噪领域公认的去噪效果(PSNR)最好的
https://blog.csdn.net/github_28260175/article/details/81101457
c++代码
http://www.ipol.im/pub/art/2012/l-bm3d/
147服务器 Euler系统
yum install fftw-devel fftw-doc
yum install libpng-devel
yum install libtiff-devel
yum install libjpeg-devel

make OMP=1

./BM3Ddenoising cinput.png 10 ImNoisy.png ImBasic.png ImDenoised.png ImDiff.png ImBias.png
ImDiffBias.png 1 bior 0 dct 1 opp

./BM3Ddenoising 000001.png 10 ImNoisy.png ImBasic.png ImDenoised.png ImDiff.png ImBias.png ImDiffBias.png 0 dct 0 dct 0 rgb

python版本代码
https://github.com/Ryanshuai/BM3D_py

手动安装fftw3
http://www.fftw.org/download.html
tar xvzf fftw-3.3.8.tar.gz
./configure
make & make install
http://www.52souji.net/details-about-the-installation-of-fftw.html
74服务器上 安装后路径搜不到
解决:改源再安装

ffmpeg -y -threads 16 -i input.mp4 -filter_complex “bm3d=sigma=5:block=4:bstep=2:group=1:estim=basic” output.mp4

ffmpeg -y -threads 16 -s 1920×1080 -i 5frame_1920x1080.yuv -filter_complex “bm3d=sigma=10:block=4:bstep=2:group=1:estim=basic” out.yuv
https://blog.csdn.net/Wu_qz/article/details/103153094
‘sigma’
Set denoising strength. Default value is 1. Allowed range is from 0 to 999.9
http://underpop.online.fr/f/ffmpeg/help/bm3d.htm.gz

注意:ffmpeg需要4.3.1版本

此时三维矩阵中的每个二维块均是对去噪图像的估计,分别将这些块融合到原来的位置,每个像素的强度通过每个对应位置的块的值加权平均,权重取决于置0的个数和噪声强度(标准差sigma的值)。
https://zh.wikipedia.org/wiki/%E4%B8%89%E7%BB%B4%E5%9D%97%E5%8C%B9%E9%85%8D%E7%AE%97%E6%B3%95
 

变体

处理灰度图的BM3D以及它的变体CBM3D(彩色图)、VBM3D(时域)是图像去噪领域公认的去噪效果(PSNR)最好的,
而BM4D、VBM4D等也都是沿袭BM3D的基于块处理(block-wise estimate)的思想,但其计算时间复杂度极大,或许只能用于离线处理(offline)

VBM3D
对中间帧的目标块搜索相似块,搜索对象是前后帧与中间帧
其余步骤与BM3D无异
https://blog.csdn.net/weixin_45250844/article/details/103153155

高光谱图像是最近几十年发展起来的一种新型遥感图像,它能更为全面、更为详细地描述地物特征。

四维块匹配滤波(Block-Matching 4D filtering,BM4D)算法是目前最新的三维图像去噪算法

由于高光谱图像是由二维空间信息和一维光谱信息组成的三维图像,因此BM4D算法适用于高光谱图像去噪处理。
http://gb.oversea.cnki.net/KCMS/detail/detail.aspx?filename=1017297313.nh&dbcode=CMFD&dbname=CMFDREF

彩色图像方法
1.将RGB图转为YUV图。

2.每一步都做如下操作:

1)只在Y(亮度通道)进行Grouping;

2)利用Y通道寻找相似块,并且在所有通道建立相似3D块

3)在每一个通道上分别使用协同滤波和 weighted aggregation.

3.再转化为RGB空间
https://blog.csdn.net/a362682954/article/details/95202003

FFTW是一个基于C写的实现傅里叶变换和小波变换的基础库
https://blog.csdn.net/weixin_44580210/article/details/105198878

幅值小,是噪声;幅值大,是有效信号

频域滤波
https://www.cnblogs.com/pingwen/p/12442257.html

图像变换域去噪算法的基本思想其实就是,首先进行某种变换,将图像从空间域转换到变换域,然后从频率上把噪声分为高中低频噪声,用这种变换域的方法就可以把不同频率的噪声分离,之后进行反变换将图像从变换域转换到原始空间域,最终达到去除图像噪声的目的。

基于小波变换的图像去噪技术
主要思想是经过小波变换后图像和噪声的统计特性不同,其中图像本身的小波系数具有较大幅值,主要集中在高频,噪声小波系数幅值较小,并且存在于小波变换后的所有系数中。因此设置一个阈值门限来进行分离。

算法的基本过程为:
①对原始信号进行小波分解
②对变换后的小波系数进行阈值处理,得到估计小波系数
③根据估计小波系数进行小波重构

 BM3D算法「建议收藏」
https://blog.csdn.net/qq_39594939/article/details/100097241

 

vbm3d

apt-get install fftw3 fftw3-dev pkg-config
apt-get install libpng-dev

$ mkdir build; cd build
$ cmake ..
$ make

./build/bin/VBM3Ddenoising -i zz/%06d.png -f 1 -l 1000000 -sigma 20 -deno %06d_vbm3d.png -bsic %06d_bsic.png -add false
https://github.com/tehret/vbm3d
 

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133899.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 解决Typora官方版本图片显示bug

    解决Typora官方版本图片显示bug问题:win10,官网下载的typorawinx64版,就是不显示图片,并不是路径问题!不是偏好设置问题!就是图片无法加载!,网上搜了一下发现很多小伙伴也遇到了这个问题;个人觉得这应该就是0.10版本的bug解决:换了一下0.9版本的,完美解决希望对你有所帮助!0.9版本的安装包pan链接:https://pan.baidu.com/s/1InBp08xV1DcOyiV9Ic65qQ提取码:1234复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V3的分享…

    2022年5月12日
    44
  • mysql declare 语法_sql_declare等语法 | 学步园[通俗易懂]

    mysql declare 语法_sql_declare等语法 | 学步园[通俗易懂]===sqlserver:—sqldeclare–简单赋值declare@aintset@a=5select@a–使用select语句赋值declare@user1nvarchar(50)select@user1=’张三’select@user1declare@user2nvarchar(50)select@user2=NamefromST_Userwhe…

    2022年8月20日
    34
  • Java Class类简介

    Java Class类简介
    一,class类有什么用?
    class类的实例表示java应用运行时的类(classansenum)或接口(interfaceandannotation)(每个java类运行时都在JVM里表现为一个class对象,可通过类名.class,类型.getClass(),Class.forName(“类名”)等方法获取class对象)。数组同样也被映射为为class对象的一个类,所有具有相同元素类型和维数的数组都共享该Class对象。基本类型boolean,byte,ch

    2022年5月1日
    43
  • 安卓版本命名规则_什么是版本号

    安卓版本命名规则_什么是版本号手机软件完全的版本号定义规则:分三项:..,如1.0.0。修改规则:主版本号:功能模块有大的变动,比如增加多个模块或者整体架构发生变化。次版本号:和主版本相对而言,次版本号的升级对应的只是局部的变动。但该局部的变动造成了程序和以前版本不能兼容,或者对该程序以前的协作关系产生了破坏,或者是功能上有大的改进或增强。修订版本号:局部的变动,主要是局部函数的功能改进,或者bug的修正,或者功能的扩充。w…

    2025年10月24日
    3
  • Ubuntu安装显卡驱动教程

    Ubuntu安装显卡驱动教程一 参考资料环境搭建 01 Ubuntu16 04 如何查看显卡信息及安装 NVDIA 显卡驱动二 环境配置系统 Ubuntu16 04 显卡 NVIDIAGeForc 4GB 三 准备工作 1 根据电脑显卡型号 下载对应显卡驱动下载链接 博主对应下载的驱动版本 NVIDIA Linux x86 64 470 57 02 run2 将显卡驱动放到 home yichao Downloads 目录四 关键步骤 1 查看显卡型号 驱动 查看显卡型号 ubuntu

    2025年6月17日
    4
  • htmlimg图片加载失败_js针对图片加载失败的处理方法分析

    htmlimg图片加载失败_js针对图片加载失败的处理方法分析本文实例讲述了js针对图片加载失败的处理方法。分享给大家供大家参考,具体如下:在项目中不可避免会用到图片,尤其是列表,有时候图片会加载失败;这样就会显示一个很难看的坏图片缩略图;下面介绍两种方法,解决这个问题:1、如果在你的项目中有引入jQuery插件,你可以使用error([[data],fn])这个函数;$(“img”).error(function(){//当图片加载失败时,你要进行的操作/…

    2022年5月5日
    410

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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