Python FastNlMeansDenoising17 Mar 2025 | 6 分钟阅读 在本文中,我们将学习噪声、各种类型的噪声、图像去噪、使用 OpenCV 进行图像去噪、OpenCV 中的非局部均值算法以及 OpenCV 中的 fastNlMeansDenosiong 函数。 fastNIMeansDenoising 是 OpenCV 模块中的一种方法。它用于对图像进行去噪。在分析之前去除图像中不希望存在的噪声的过程称为去噪。它指的是一个重要的预处理阶段。 去噪是图像预处理最重要的阶段之一。它用于去除图像中的噪声,因此让我们首先了解什么是噪声。 图像中的噪声图像中存在的缺陷称为噪声,它与底层场景内容无关。统计上的随机过程产生的测量变化通常被认为是噪声。在成像中,噪声表现为覆盖图像的颗粒状纹理的伪影。 在图像中,噪声可以呈现各种形状和表现形式,通常是降低视觉质量的、不受欢迎的或令人困扰的伪影。 图像有两种主要类型的噪声 1. 椒盐噪声: 它具有零星的暗色和亮色干扰。 其独特之处在于,噪声像素的值不会影响其他像素的颜色。图像中的像素在颜色或强度上与周围像素明显不同。在大多数情况下,这种类型的噪声只会对少量图像像素产生轻微影响。之所以称之为“椒盐噪声”,是因为图像中出现的白色和黑色点。 2. 高斯噪声: 通常会在图像中每个像素的原始值上添加或减去少量(通常是适度的)。直方图显示了噪声的正态分布,绘制了像素值失真的程度与其频率的关系。虽然其他分布也是可能的,但根据中心极限定理,多种噪声的总和趋向于高斯分布,因此高斯(正态)分布是一个普遍可靠的模型。 现在我们已经理解了图像中的噪声是什么。现在是时候理解什么是去噪了。 图像去噪图像去噪是计算机视觉和图像处理中的基本问题之一。去噪通过减少图像中的噪声量来估计原始图像。图像噪声可能来自各种来源(例如环境或传感器),在实际应用中,通常无法避免。 鉴于此,图像去噪在图像恢复、视觉跟踪、图像配准和图像分割等各种应用中至关重要。尽管已经提出了各种用于图像去噪的算法,但图像噪声抑制问题仍然是一个挑战,尤其是在图像是在不利条件下拍摄且噪声程度很高的情况下。 现在我们已经了解了图像去噪是什么。现在我们将理解 OpenCV 中用于去噪图像的各种方法。 使用 OpenCV 进行图像去噪OpenCV 模块包含多种非局部均值算法来去噪图像。在查看 OpenCV 中的各种方法之前,让我们先理解非局部均值算法的含义。 非局部均值算法非局部均值算法的基本原理是,用与构成像素邻域的图像子窗口相似的多个图像子窗口的颜色平均值来替换像素的颜色。 现在我们知道了非局部均值算法的含义。现在让我们看看 OpenCV 模块中用于去噪图像的各种函数。 OpenCV 中提供了该算法的四个版本。
Python 中的 fastNlMeansDenoising() 函数它是一个基于非局部均值算法的函数。此函数用于对单个灰度图像进行去噪。 fastNlMeansDenoising() 函数的语法 fastNlMeansDenoising() 函数的参数
注意:该函数将图像转换为 CIELAB 颜色空间,并使用 fastNlMeansDenoising 函数使用提供的 h 参数独立地去噪 L 和 AB 分量。让我们通过一个例子来理解如何从图像中去除噪声。 去除图像中的椒盐噪声通过向图像添加随机的亮像素和随机的暗像素来添加椒盐噪声。由于它在统计上减少了原始数据值,因此这种模型通常被称为数据丢弃噪声。来源:相机中发生故障的传感器单元。 ![]() 在上图中,我们看到了椒盐噪声。图像中有一些暗区中的亮像素。因此,让我们看看使用 OpenCV 模块通过 Python 代码来减少或去除椒盐噪声。 输出 ![]() 在上例中,我们首先导入了代码中所有必需的库。这是一个椒盐噪声图像。现在我们将使用 cv2.imread() 来读取图像。图像应为黑白 1 通道、2 通道、3 通道或 4 通道图像。现在我们将使用 cv2.fastMlMeansDenoising() 来去噪椒盐噪声。现在我们将使用 pyplot 来可视化图像。 去除图像中的高斯噪声高斯噪声是数字图像中最常见的噪声类型。由于在低光照条件下拍摄图像时的传感器限制,导致可见光传感器难以充分记录场景细节,因此在高斯噪声在数字成像中出现。 ![]() 在上例中,我们看到了图像是嘈杂的。这张图像是高斯噪声的一个例子。让我们看看使用 OpenCV 模块通过 Python 代码来去除高斯噪声。 输出 ![]() 在上例中,我们首先导入了代码中所有必需的库。这是一个高斯噪声图像。现在我们将使用 cv2.imread() 来读取图像。图像应为黑白 1 通道、2 通道、3 通道或 4 通道图像。现在我们将使用 cv2.fastMlMeansDenoising() 来去噪椒盐噪声。现在我们将使用 pyplot 来可视化图像。 结论在本文中,我们讨论了噪声及其各种类型。然后我们讨论了什么是图像去噪及其特性,以及使用 OpenCV 进行图像去噪、OpenCV 中的非局部均值算法和 OpenCV 中的 fastNlMeansDenosiong 函数。 下一个主题Python Email.utils |
情感分析是一个“计算确定”某篇文章是积极、中性还是消极的过程。它也称为意见挖掘。此过程确定段落中的句子是消极、积极还是中性。商业:营销公司使用它来制定策略、了解客户的...
阅读 3 分钟
| 获取城市天气报告 在本教程中,我们将使用 Django 创建一个天气应用程序;此应用程序将显示所搜索城市的天气。这是一个简单的 Django 项目,可帮助初学者理解 Django 的基本概念。我们还将...
7 分钟阅读
IDE 与代码编辑器简介:在本文中,我们将讨论 IDE 与代码编辑器。代码编辑器是程序员最重要的关键设备之一,其明确目的是使代码编辑技术更高效、更简单。文本编辑器是...
阅读 6 分钟
GUI 代表图形用户界面,它是界面上的图形设计,例如图标、菜单,用户可以使用它们与应用程序进行交互。Tkinter 是一个 Python 模块,旨在开发任何项目的 GUI,从应用程序到网站……
5 分钟阅读
在本文中,我们将讨论 Python 中 os 路径 curdir 是什么,如何更改工作目录,以及如何使用 Python 检索当前目录。OS Python 模块提供了一种与操作系统通信的可移植方式。用于定位的工具...
阅读 3 分钟
嵌套元组是 Python 元组,它被放置在另一个元组中。让我们看下面的 8 元素元组。tuple = (12, 23, 36, 20, 51, 40, (200, 240, 100)) 这个最后一个元素由三个项组成,用括号括起来,是...
阅读 3 分钟
简介:在本教程中,我们正在学习。这里我们使用一个均匀离散随机变量:scipy.stats.randint()。这个变量继承自通用方法。它是 rv_discrete 类的一个例子。这个方法包含了任何分布的具体细节。离散均匀分布是一个相等的...
阅读 4 分钟
通配符是一个符号,可以替代或补充一个或多个字符。在计算机程序、语言、搜索引擎(包括操作系统)中,通配符用于简化搜索条件。问号 (?) 和星号 () 是...
阅读 3 分钟
| Python中常量的重要性 在本教程中,我们将了解常量类型以及它们如何帮助提高代码可读性。如果您不熟悉,常量是表示在程序执行期间不更改的值的名称。它们是最常见的……
阅读 10 分钟
Python 中的 Excel 模块是一个强大的工具,它允许 Python 程序员处理 Microsoft Excel 文件。该模块提供了一种使用 Python 代码自动执行 Excel 操作的方法,例如读取和写入 Excel 文件、设置单元格格式、创建图表和执行计算。它是...
阅读 13 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India