Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OpenCV - 图像保留纹理去噪 fastNlMeansDenoising

OpenCV - 图像保留纹理去噪 fastNlMeansDenoising

作者头像
为为为什么
发布于 2022-08-06 09:38:38
发布于 2022-08-06 09:38:38
4.1K00
代码可运行
举报
文章被收录于专栏:又见苍岚又见苍岚
运行总次数:0
代码可运行

图像去噪是图像处理中的重要需求,本文介绍 OpenCV 库中集成的去噪函数 fastNlMeansDenoising。

简介

  • 去噪是十分重要的预处理步骤之一,但是在去噪的同时保留正常的图像纹理则需要更精细的去噪算法
  • 之前介绍过的 Photoshop 中的表面模糊 算法可以算是去噪中比较有效的方法之一,但是没有快速算法
  • OpenCV 集成了 Non-Local Means Denoising 算法的同时对其进行了加速
  • 可以有效处理高斯白噪声
  • 官方文档:https://docs.opencv.org/2.4.13.7/modules/photo/doc/denoising.html?highlight=fastnlmeansdenoising

Non-Local Means Denoising

  • 其中p​ 为当前正在处理的像素,q​ 为周围邻域一个像素,d(B§, B(q))​ 为二者邻域patch 数据的距离度量(欧氏距离),u(q)​为q​的权重,​ 为权重标准化系数
  • 即为了估计当前像素p去噪后的真实像素值,需要周围邻域像素的信息辅助,邻域单个像素辅助也不可靠,需要邻域像素周围的patch与p 周围的patch 数据相比较,将结果作为估计像素的权重加权求和计算得到当前像素点的去噪像素值
  • 考虑一幅彩色图像 u=\left(u_{1}, u_{2}, u_{3}\right) ,对于像素 p,为其去噪的核心公式为:

  • 其中 i=1,2,3​,B(p,r)​ 为 p​ 周围 r​ 为半径的邻域,w(p, q)​ 为权重,​ 为权重标准化系数
  • 权重的计算与像素间距离度量相关,定义p, q 间欧式距离度量 d{2}=d{2}(B(p, f), B(q, f)) :

  • 有了 d^2​,定义 w(p, q)​计算方法:

  • 其中 σ​ 表示噪声标准差,h​ 表示过滤参数,越大表示去噪能力越强,同时图像的细节丢失的也会越多

OpenCV 函数介绍

核心函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cv2.fastNlMeansDenoising(src, h=3, templateWindowSize=7, searchWindowSize=21 )
参数介绍

参数

含义

src

噪声图像(对于此函数接受2D图像)

templateWindowSize

用于计算权重的模板块的像素大小,需要奇数,建议为7

searchWindowSize

用于计算给定像素加权平均数的窗口的像素大小,需要奇数,建议为21

h

参数调节过滤器强度。较大的 h 值可以完全去除图像中的噪声,但同时也去除了图像中的细节,较小的 h 值可以保留细节,但同时也保留了一些噪声, 默认为3

配套函数
  • fastNlMeansDenoising 仅用于灰度图像去噪
  • 彩色图像去噪需要用到 fastNlMeansDenoisingColored函数,该函数会将图像转换到 CIELAB 空间并分别对 L 和 AB 分量去噪
  • fastNlMeansDenoisingMulti 函数用于连续相关灰度图像的快速去噪(例如视频中的连续灰度帧)
  • fastNlMeansDenoisingColoredMulti 函数用于连续相关彩色图像的快速去噪(例如视频中的连续彩色帧)

实现示例

  • 示例代码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import cv2
from mtutils import to_gray_image
from mtutils import cv_rgb_imread
from mtutils import PIS


if __name__ == '__main__':
    noise_image_path = 'assets/noise.jpg'
    noise_img = cv_rgb_imread(noise_image_path)

    # h -> 6
    denoised_img = cv2.fastNlMeansDenoisingColored(noise_img, None, 6, 10, 7, 21)
    PIS([noise_img, 'with noise'], [denoised_img, 'denoised'])
    
    pass

  • 效果示例

原始论文

file:///C:/Users/issuser/Downloads/NonLocalDenoising.pdf

参考资料

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年2月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C++ OpenCV去燥函数fastNlMeansDenoising的使用
在使用OpenCV进行图像处理时,一般都使用高斯滤波或是中值滤波进行去噪,原理也是选取像素周围一个小的邻域铂高斯或中值平均取代中心像素。而今天介绍的NlMeans是对整幅图像进行去噪。
Vaccae
2021/04/21
3.3K0
C++ OpenCV去燥函数fastNlMeansDenoising的使用
OpenCV 图像变换之 —— 图像修复
图像经常因噪声造成破损。镜头上可能有灰尘或水渍,旧图像可能有划痕,或者图像的一部分被损坏。图像修复是消除这种损坏的一种方式,它通过摄取被损坏区域边缘的色彩和纹理,然后传播混合至损坏区域的内部。
为为为什么
2022/08/09
1.8K0
OpenCV 图像变换之 —— 图像修复
OpenCV图像噪声与去噪函数方法对比使用介绍
图像去噪在二值图像分析、OCR识别预处理环节中十分重要,最常见的图像噪声都是因为在图像生成过程中因为模拟或者数字信号受到干扰而产生的,常见的噪声类型有如下:
OpenCV学堂
2018/07/26
10.9K0
OpenCV图像噪声与去噪函数方法对比使用介绍
一文轻松学会图形失真修复-图像去噪滤波算法汇总(Python)
看完本篇文章的所有操作和实践,就不需要去花钱修复照片了自己也能做到而且保证十分便捷!本篇文章将介绍常用到的图像去噪滤波算法,采用实例代码和处理效果一并展现的方式进行介绍,能够更直观的看到每种算法的效果。本篇文章偏实战,所以不会涉及到过多每种算法的原理理论计算公式,以一篇文章快速了解并实现这些算法,以效率最高的方式熟练这些知识。
fanstuck
2024/01/24
2.2K0
一文轻松学会图形失真修复-图像去噪滤波算法汇总(Python)
常见的图像处理技术
深度学习对于图像的分析、识别以及语义理解具有重要意义。“图像分类”、“对象检测”、“实例分割”等是深度学习在图像中的常见应用。为了能够建立更好的训练数据集,我们必须先深入了解基本的图像处理技术,例如图像增强,包括裁剪图像、图像去噪或旋转图像等。其次基本的图像处理技术同样有助于光学字符识别(OCR)。
小白学视觉
2020/08/28
2.9K0
OpenCV 实战:3 步实现图像降噪
本文将展示如何通过三个简单的步骤来实现降噪。我们将使用机器学习训练的降噪模型,最好的降噪模型之一。
AI科技大本营
2021/06/08
2.7K0
OpenCV 实战:3 步实现图像降噪
基于 opencv 的图像处理入门教程
虽然计算机视觉领域目前基本是以深度学习算法为主,但实际上很多时候对图片的很多处理方法,并不需要采用深度学习的网络模型,采用目前成熟的图像处理库即可实现,比如 OpenCV 和 PIL ,对图片进行简单的调整大小、裁剪、旋转,或者是对图片的模糊操作。
kbsc13
2020/07/16
2.5K0
基于 opencv 的图像处理入门教程
使用深度学习进行图像去噪
使用深度学习架构会更好的解决这个问题。目前看深度学习远远超过了传统的去噪滤波器。在这篇文章中,我将使用一个案例来逐步解释几种方法,从问题的形成到实现最先进的深度学习模型,然后最终看到结果。
deephub
2021/02/12
3.3K0
使用深度学习进行图像去噪
Opencv 图像超像素分割(SLIC、SEEDS、LSC)
超像素是把一张图片中具有相似特征的像素进行聚类,形成一个更具有代表性的大“像素”。 本文记录Opencv 实现方法。 简介 超像素是把一张图片中具有相似特征的像素进行聚类,形成一个更具有代表性的大“像素”。这个新的像素可以作为其他图像处理算法的基本单位,可以减低图像的维度和异常像素点。目前常用的超像素分割算法有SLIC、SEEDS和LSC。下面来说说这些算法基于Opencv的Python实现。 测试图像: SLIC 算法具体原理可参考博客:SuperPixel 超像素分割 SLIC 算
为为为什么
2022/08/10
5.7K0
Opencv 图像超像素分割(SLIC、SEEDS、LSC)
Python opencv图像处理基础总结(二) ROI操作与泛洪填充 模糊操作 边缘保留滤波EPF
ROI(Region Of Interest),感兴趣区域,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,经常用来连接图像。
叶庭云
2020/09/17
3.3K0
Python  opencv图像处理基础总结(二)  ROI操作与泛洪填充  模糊操作  边缘保留滤波EPF
OpenCV 图像处理学习手册:1~5
本章旨在与 OpenCV,其安装和第一个基本程序进行首次接触。 我们将涵盖以下主题:
ApacheCN_飞龙
2023/04/27
3.1K0
OpenCV 图像处理学习手册:1~5
OpenCV 滤波与卷积之 —— 平滑
平滑一般也称“模糊”,是一种简单而又常用的图像处理操作。平滑图像的目的有很多,但通常都是为了减少噪声和伪影。在降低图像分辨率的时候,平滑也是十分重要的。OpenCV 提供5种不同的平滑操作,每种操作都有对应的函数实现,这些操作平滑的结果有着细微的差别。
为为为什么
2022/08/09
1K0
OpenCV 滤波与卷积之 —— 平滑
BM3D图像去噪算法原理及代码详解
BM3D是2007年TIP的文章,题目是Image denoising by sparse 3D transform-domain collaborative ltering,论文、项目的地址是http://www.cs.tut.fi/~foi/GCF-BM3D/,提供matlab代码。 处理灰度图的BM3D以及它的变体CBM3D(彩色图)、VBM3D(时域)是图像去噪领域公认的去噪效果(PSNR)最好的,而BM4D、VBM4D等也都是沿袭BM3D的基于块处理(block-wise estimate)的思想,但其计算时间复杂度极大,或许只能用于离线处理(offline),当然后续有文章进行优化(代码、算法),这里就不再提及。
全栈程序员站长
2022/08/14
2.3K0
BM3D图像去噪算法原理及代码详解
最新!图像去噪综合比较研究
图像去噪是计算机视觉领域的传统方向,对于可见光图像、视频、核磁图像等的处理仍应用广泛,在工业和学术界引起很多人的关注,基于BM3D(block-matching 3D ,2007)框架的系列算法是该领域的著名方法,其结合图像非局部相似的属性和变换域的稀疏表示,在深度学习用于CV各领域的今天仍有用武之地。
CV君
2020/11/12
1.9K0
最新!图像去噪综合比较研究
ECCV 2020 | SADNet:用于单图像去噪的空间自适应网络
Title:Spatial-Adaptive Network for Single ImageDenoising(SADNet):用于单张图像去噪的空间自适应网络
Amusi
2020/09/23
2.5K0
ECCV 2020 | SADNet:用于单图像去噪的空间自适应网络
手把手教你使用图像处理利器OpenCV
在本文中,将学习如何使用Python语言进行图像处理,我们不会局限于一个单独的库或框架,然而,有一个库的使用率将会是最高的,那就是OpenCV。我们一开始会讨论一些图像处理,然后继续探讨不同的应用/场景,也就是图像处理的用武之地。开始吧!
老齐
2020/05/15
1.4K0
手把手教你使用图像处理利器OpenCV
Python图片验证码降噪 — 8邻域降噪
图片验证码识别的可以分为几个步骤,一般用 Pillow 库或 OpenCV 来实现,这几个过程是:
jhao104
2019/12/05
2.2K0
详解图像滤波原理及实现!
图像的实质是一种二维信号,滤波是信号处理中的一个重要概念。在图像处理中,滤波是一常见的技术,它们的原理非常简单,但是其思想却十分值得借鉴,滤波是很多图像算法的前置步骤或基础,掌握图像滤波对理解卷积神经网络也有一定帮助。
Datawhale
2020/07/02
4.9K0
详解图像滤波原理及实现!
【技术综述】一文道尽传统图像降噪方法
图像预处理算法的好坏直接关系到后续图像处理的效果,如图像分割、目标识别、边缘提取等,为了获取高质量的数字图像,很多时候都需要对图像进行降噪处理,尽可能的保持原始信息完整性(即主要特征)的同时,又能够去除信号中无用的信息。
用户1508658
2019/07/26
3.1K0
【技术综述】一文道尽传统图像降噪方法
基于DnCNN的图像和视频去噪
随着数字图像数量的增加,对高质量的图像需求也在增加。然而,现代相机拍摄的图像会因噪声而退化。图像中的噪声是图像中颜色信息的失真,噪声是指数字失真。当在夜间拍摄时,图像变得更嘈杂。该案例研究试图建立一个预测模型,该模型将带噪图像作为输入并输出去噪后的图像。
小白学视觉
2022/05/22
1.6K0
基于DnCNN的图像和视频去噪
相关推荐
C++ OpenCV去燥函数fastNlMeansDenoising的使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档