图像去噪-NL Means,BM3D与DCT

2024-01-28 14:10
文章标签 图像去噪 dct means nl bm3d

本文主要是介绍图像去噪-NL Means,BM3D与DCT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基础

ShaneHolmes的图像处理专栏:图像各种噪声及消除方法 中记录了噪声来源、分类和处理噪声的基本方法
高斯白噪声:加性噪声的理想模型,通信系统中的热噪声统计上符合高斯白噪声。

非局部均值去噪(NL-means)

基本思想:像素的估计值 u ^ \hat{u} u^由与之具有相似邻域结构的像素加权平均得到。其权重 w ( p , q ) w(p,q) w(p,q)等于两点的相似度。这个邻域 ( 2 r + 1 ) × ( 2 r + 1 ) (2r+1)\times(2r+1) (2r+1)×(2r+1)也称为搜索区域。
u ^ i ( p ) = 1 C ( p ) ∑ q ∈ B ( p , r ) u i ( q ) w ( p , q ) \hat{u}_{i}(p)=\frac{1}{C(p)}\sum_{q\in B(p,r)}{u_i(q)w(p,q)} u^i(p)=C(p)1qB(p,r)ui(q)w(p,q)
C ( p ) = ∑ q ∈ B ( p , r ) w ( p , q ) C(p)=\sum_{q\in B(p,r)}{w(p,q)} C(p)=qB(p,r)w(p,q)
衡量相似度的方法有非常多,文章中给出的是两个像素的亮度值的差的平方。
d 2 ( B ( p , f ) , B ( q , f ) = 1 3 ( 2 f + 1 ) 2 ∑ i = 1 3 ∑ j ∈ B ( 0 , f ) ( u i ( p + j ) − u i ( q + j ) ) 2 d^{2}(B(p,f), B(q,f)=\frac{1}{3(2f+1)^2}\sum_{i=1}^{3}{\sum_{j\in B(0,f)}{(u_i(p+j)-u_i(q+j))^2}} d2(B(p,f),B(q,f)=3(2f+1)21i=13jB(0,f)(ui(p+j)ui(q+j))2
降低噪声影响,我们考虑两个像素的邻域 ( 2 f + 1 ) × ( 2 f + 1 ) (2f+1)\times(2f+1) (2f+1)×(2f+1),只有邻域相似度高,才能说明这两个像素相似度高。
w ( p , q ) = e − m a x ( d 2 − 2 σ 2 , 0.0 ) h 2 w(p,q)=e^{-\frac{max(d^2-2\sigma^2, 0.0)}{h^2}} w(p,q)=eh2max(d22σ2,0.0)
h h h是滤波系数,控制指数函数衰减从而改变欧氏距离的权重。
在这里插入图片描述
如上图所示, p p p为去噪的点,因为 q 1 q1 q1 q 2 q2 q2的邻域与 p p p相似,所以权重和比较大,而邻域相差比较大的点 q 3 q3 q3的权重值很小。

参考资料:
xiaoluo91 非局部均值去噪(NL-means):含python代码
图像去噪算法:NL-Means和BM3D(转载+个人笔记)
最经典最新的图像去噪算法

论文:

  1. Antoni Buades, Bartomeu Coll, and Jean-Michel Morel, Non-Local Means Denoising, Image Processing On Line, 1 >(2011). http://dx.doi.org/10.5201/ipol.2011.bcm_nlm
  2. Jacques Froment, Parameter-Free Fast Pixelwise Non-Local Means Denoising, Image Processing On Line, 4 (2014), pp. 300–326. http://dx.doi.org/10.5201/ipol.2014.120

NL-means加速算法

构造积分图像:
S t ( x ) = ∑ z 1 ≤ x 1 , z 1 ≤ x 2 s t ( z ) , x = ( x 1 , x 2 ) S_t(x)=\sum_{z_{1} \leq x_1, z_{1} \leq x_2}s_t(z),x=(x_1,x_2) St(x)=z1x1,z1x2st(z),x=(x1,x2)
其中, s t ( z ) = ∑ i = 1 3 ∑ j ∈ B ( 0 , f ) ( u i ( p + j ) − u i ( q + j ) ) 2 s_t(z)=\sum_{i=1}^{3}\sum_{j\in B(0,f)}(u_i(p+j)-u_i(q+j))^2 st(z)=i=13jB(0,f)(ui(p+j)ui(q+j))2
则,计算 x x x y = x + t y=x+t y=x+t间的距离:
d 2 ( B ( x , f ) , B ( y , f ) ) = 1 3 ( 2 f + 1 ) 2 ∑ i = 1 3 ∑ j ∈ B ( 0 , f ) ( u i ( p + j ) − u i ( q + j ) ) 2 d^2(B(x,f),B(y,f))=\frac{1}{3(2f+1)^2}\sum_{i=1}^{3}{\sum_{j\in B(0,f)}{(u_i(p+j)-u_i(q+j))^2}} d2(B(x,f),B(y,f))=3(2f+1)21i=13jB(0,f)(ui(p+j)ui(q+j))2
参考资料:
积分图像的应用(二):非局部均值去噪(NL-means)
论文:Jacques Froment, Parameter-Free Fast Pixelwise Non-Local Means Denoising, Image Processing On Line, 4 (2014), pp. 300–326. http://dx.doi.org/10.5201/ipol.2014.120

BM3D 3维块匹配滤波 去噪算法

图像去噪算法大致可以分为:空域方法(spatial method) 利用图片中不同位置的相似信息进行去噪,例如上面的NL-means和NL-Bayes;变换域方法(transform method),转换到其他空间,如频域,在利用对有效信号与噪声的特性进行降噪,例如小波萎缩法。BM3D算法综合了NLM和小波萎缩两种算法,利用了NLM的块之间相关性(inter-patch correlation)和小波萎缩法的块内相关性(intra-patch correclation),是当前行之有效的去噪算法。
在这里插入图片描述
BM3D算法流程如上,分为两大步:Step 1 基础估计;Step 2 最终估计。
每个步骤中分为三小步:相似块分组(Grouping),协同滤波(Collaborative Filtering)和聚合(Aggregation)。Step 1中用Hard-thresholding进行协同滤波,Step 2中用维纳滤波方法进行协同滤波。

在资料最经典最新的图像去噪算法中,博文论述的每一步的具体步骤。下文会进行转载与加工。

协同滤波

协同取自字面意思,就是说同组内的 n n n个块以某种合作的方式来滤波。假设每一个块都有独立的二维变换, n n n个块的总有效变换系数为 α n \alpha n αn;然而我们的这一组块取的是相似度高的一些块,这样会有很多冗余信息。所以,作者提出对整租进行三维变换(即对二维变换后的所有块再进行一个一维变换),其有效变换系数近似于 α \alpha α

两个小块之间的相似度匹配

参考资料:
BM3D图像去噪算法
最经典最新的图像去噪算法

论文:

  1. K. Dabov, A. Foi, V. Katkovnik, and K. Egiazarian, “Image denoising by sparse 3D transform-domain collaborative filtering,” IEEE Trans. Image Process., vol. 16, no. 8, pp. 2080-2095, August 2007.
  2. K. Dabov, A. Foi, V. Katkovnik, and K. Egiazarian, “Image denoising with block-matching and 3D filtering,” Proc. SPIE Electronic Imaging '06, no. 6064A-30, San Jose, California, USA, January 2006.
  3. http://www.cs.tut.fi/~foi/GCF-BM3D/
  4. Marc Lebrun, An Analysis and Implementation of the BM3D Image Denoising Method, Image Processing On Line, 2 (2012), pp. 175–213.

Randomized Redundant DCT

前面两种算法感觉都有点慢,这篇文章作者给出的算法确实效率很高,但还是达不到笔者想要的效果。最终还是回归深度学习。
文章主页:Randomized Redundant DCT: Efficient Denoising by Using Random Subsampling of DCT Patches
Code: git

这篇关于图像去噪-NL Means,BM3D与DCT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/653855

相关文章

第L8周:机器学习|K-means聚类算法

本文为🔗365天深度学习训练营中的学习记录博客 🍖 原作者:K同学啊 | 接辅导、项目定制 🚀 文章来源:K同学的学习圈子深度学习 聚类算法的定义: 聚类就是将一个庞杂数据集中具有相似特征的数据自动归类到一起,称为一个簇,簇内的对象越相似,聚类的效果越好。“相似”这一概念,是利用距离标准来衡量的,我们通过计算对象与对象之间的距离远近来判断它们是否属于同一类别,即是否是同一个簇。 聚类是

图像去噪实验:基于全变分(TV)模型的MATLAB实现

一、背景        全变分模型在图像处理领域中被广泛用于去除噪声,同时保持图像边缘的清晰度。 二、实验步骤         图像的读取、噪声添加、去噪处理以及结果的显示。 三、实验仿真结果图     四、结论       全变分模型是一种有效的图像去噪方法,它能够在去除噪声的同时,保持图像的重要特征。通过调整模型参数,我们可以优化去噪效果,达到更好的视觉效果。

MATLAB分析图像的离散余弦变换(DCT)

1. MATLAB的介绍以及所需函数的说明:  1.1 MATLAB  MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设

BM3D--Image Denoising by Sparse 3-D Transform-Domain Collaborative Filtering

系列文章目录 文章目录 系列文章目录前言稀疏三维变换域协同滤波图像去噪摘要1 引言2 分组和协作过滤A.分组B.按匹配分组C.协同过滤D.基于变换域收缩的协同过滤 3 算法结论 前言 论文地址 如果下载不了可以从 https://download.csdn.net/download/m0_70420861/89708940 获取 参考博客 :图像去噪算法:NL-Me

开放题:如何利用深度学习来重参数化 K-means 聚类,这样的思路要做出效果,它的前向传播、反向传播以及优化目标最好是什么样的?

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 传统的 K-means 算法直接处理数据点与聚类中心。重参数化技术的核心在于利用神经网络来学习一个从输入空间映射到聚类分配的转换函数。深度学习重参数化 K-means 聚类的核心思想在于,将传统 K-means 算法中的硬分配机制转化为可微分的软分配,进而利用神经网络学习并优化特征表示。此方法巧妙融合了

算法——K-means算法和算法改进

简介:个人学习分享,如有错误,欢迎批评指正。 一、什么是K-means算法? K-means算法是一种无监督的聚类算法,用于将一组数据点分为K个簇(cluster)。其核心目标是将数据点划分到K个不同的簇中,使得每个簇内的数据点之间的相似性最大化,而不同簇之间的相似性最小化。 具体而言,K-means算法通过以下方式实现聚类: 簇中心(质心):每个簇都有一个中心点,称为质心(cent

图像去噪评论:从经典到最先进的方法

系列文章目录 文章目录 系列文章目录前言摘要1 引言1.1.噪声抑制 2. 空间域过滤2.1.局部滤波器2.2.非局部滤波器 3.变换域滤波3.1.阈值3.1.1. 通用阈值3.1.2. VISUShrink3.1.3.SURE收缩3.1.4.BayesShrink3.1.5.概率收缩3.1.6.SURELET3.1.7.Neigh Shrink Sure(NSS)3.1.8.块收缩

基于Python的机器学习系列(19):K均值聚类(K-Means Clustering)

简介         K均值聚类(K-Means Clustering)是一种常用的无监督学习算法,用于将数据样本划分为若干个“簇”,使得同一簇内的数据点彼此相似,而不同簇的数据点之间差异较大。由于K均值不依赖于标签,因此它是一种无监督学习方法。常见的应用包括客户细分、图像分割和数据可视化等。 K均值算法 K均值算法的基本步骤如下: 定义簇的数量 k(需手动设定)。初始化簇的质心,这些质心

数学建模--K-Means聚类分析

目录 1.聚类分析步骤 1.1简单介绍 1.2两个概念 1.3几种距离 1.4更新质心 1.5终止条件 2.归一化处理 3.肘部法则 4.搭建K-Means分析模型 5.选择最佳K值 6.绘制3D图形 1.聚类分析步骤 1.1简单介绍 K-Means聚类分析是属于聚类分析的一种,这个数据机器学习的算法; 对数据进行自动分组,使得同一组内的数据样本尽可能相似

x264 编码器 AArch64汇编系列:DCT 变换相关汇编函数

DCT变换 在x264_dct_init函数中初始化具体的 dct 实现函数。 4x4 块DCT 变换 c 语言版本实现 4x4DCT 变换函数:sub4x4_dct。 pixel_sub_wxh 函数: 这个函数的作用是从两个像素块中减去一个像素块,得到差分值,这些差分值将用于DCT变换。参数: diff:指向存储结果差分值的数组的指针。i_size:差分值数组的宽度和高度,通常