网站建设中的需求报告功能,wordpress七牛云加速,网站设计计费,wordpress怎么引用single前言
上篇文章#xff1a;图像数据噪音种类以及Python生成对应噪音#xff0c;汇总了常见的图片噪音以及噪音生成方法#xff0c;主要用在数据增强上面#xff0c;作为数据集填充的方式#xff0c;可以避免模型过拟合。想要了解图像数据增强算法的可以去看本人所撰这篇文…
前言
上篇文章图像数据噪音种类以及Python生成对应噪音汇总了常见的图片噪音以及噪音生成方法主要用在数据增强上面作为数据集填充的方式可以避免模型过拟合。想要了解图像数据增强算法的可以去看本人所撰这篇文章图像数据增强算法汇总(Python)。
本篇文章将介绍常用到的图像去噪滤波算法采用实例代码和处理效果一并展现的方式进行介绍能够更直观的看到每种算法的效果。本篇文章偏实战所以不会涉及到过多每种算法的原理理论计算公式以一篇文章快速了解并实现这些算法以效率最高的方式熟练这些知识。
博主专注数据挖掘五年参与过大大小小数十来次数学建模理解各类模型原理以及每种模型的建模流程和各类题目分析方法。此专栏的目的就是为了让零基础快速使用各类数学模型、机器学习和深度学习以及代码每一篇文章都包含实战项目以及可运行代码。博主紧跟各类数模比赛每场数模竞赛博主都会将最新的思路和代码写进此专栏以及详细思路和完全代码。希望有需求的小伙伴不要错过笔者精心打造的专栏。 一、图像噪音来源
随着图像获取技术的不断发展我们在实际应用中常常会面临到各种形式的图像噪声这些噪声会影响到图像的质量和特征的清晰度。为了有效地提升图像的质量图像处理领域涌现出了多种去噪方法它们以不同的原理和技术手段来应对各种噪声情况。在接下来的介绍中我们将详细探讨一些常用的图像去噪方法包括均值滤波、中值滤波、高斯滤波等以及它们的适用场景和特点。让我们一起深入了解如何有效地应对图像噪声提升图像处理的准确度和质量。 图像噪音可以由多种因素引起 传感器噪音 摄像机、扫描仪等图像采集设备本身会引入噪音这是由于设备的电子元件和信号处理过程中的微小不确定性。 环境条件 光线不足、强光、阴影等环境因素可能会导致图像中的噪音增加。 传输或存储中的干扰 在图像传输或存储过程中信号可能会受到电磁干扰、压缩算法等因素的影响从而产生噪音。 设备老化或损坏 图像采集设备的老化、损坏或不稳定可能会导致图像中出现各种噪音。 信号采样误差 在信号采样过程中由于采样率不足或量化误差等原因会引入噪音。 电磁干扰 来自电器设备、无线信号等电磁波的干扰可能会影响到图像质量。 传感器特性 不同类型的传感器例如CMOS、CCD具有不同的特性它们在信号处理过程中可能会引入特定类型的噪音。
二、图像去噪算法
1.均值滤波
均值滤波是一种常用的图像处理技术它的原理是将图像中每个像素的值替换为周围像素值的平均数。这样可以平滑图像减少噪声的影响。具体的实现步骤如下 确定滤波器大小均值滤波器的大小由一个参数决定通常用一个正奇数来表示如3x3、5x5等。这个值决定了滤波器在图像上的覆盖区域。 将滤波器放置在图像的每个像素上以当前像素为中心将滤波器覆盖在图像上。 计算周围像素的平均值将滤波器覆盖区域内的所有像素值取平均得到一个新的像素值。 将新的像素值赋给当前位置用计算得到的新像素值替代原来的像素值。 均值滤波主要用于去除图像中的随机噪声例如高斯噪声或盐椒噪声。它在保留图像整体结构的同时可以有效地减轻噪声的影响。
使用均值滤波算法来去除图片的高斯噪音可以通过以下步骤实现
1.应用均值滤波
# 设置卷积核大小通常选择奇数
kernel_size 3
# 使用均值滤波进行去噪
denoised_image cv2.blur(image, (kernel_size, kernel_size)) 2.显示原始图片和去噪后的图片
cv2.imshow(Original Image, image)
cv2.imshow(Denoised Image, denoised_image)
cv2.waitKey(0)
cv2.destroyAllWindows() 然而均值滤波对于一些特定类型的噪声如周期性噪声可能效果不佳因为这些噪声会在图像中形成特定的模式而均值滤波只能模糊图像无法针对特定模式的噪声进行处理。总的来说均值滤波是一种简单而有效的去噪方法适用于大多数情况下的随机噪声去除。但在特定情况下可能需要考虑其他类型的滤波器或去噪技术。卷积核越大参与到均值运算中的像素就会越多即当前计算的算的是更多点的像素值的平均值去噪效果越好当然花费的计算时间也会越长同时让图像失真越严重。因此在实际处理中要在失真和去噪效果之间取得平衡选取合适大小的卷积核。
2.中值滤波
中值滤波是一种常用于图像处理中的非线性滤波方法其基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值从而达到去除噪音的目的。总共分两步 将滤波器窗口置于图像的某一像素处。 将窗口中的像素值按大小排序取其中间值作为该像素的新值。
能够处理的图像噪音类别
中值滤波主要适用于以下几种图像噪音 椒盐噪声即图像中出现的黑白像素点。 横纹噪声出现在图像中的横向条纹。 斑点噪声散布在图像中的随机白点。
然而中值滤波也有一些局限性比如在保留图像细节的同时也会模糊图像卷积核选择和均值滤波算法存在一样的问题卷积核越大参与到均值运算中的像素就会越多即当前计算的算的是更多点的像素值的平均值去噪效果越好当然花费的计算时间也会越长同时让图像失真越严重
gray_image cv2.cvtColor(noisy_image, cv2.COLOR_BGR2GRAY)
denoised_image cv2.medianBlur(gray_image, 5) # 5表示核的大小可以根据需要调整cv2.imshow(Original Image, noisy_image)
cv2.imshow(Denoised Image, denoised_image)
cv2.waitKey(0)
cv2.destroyAllWindows() 3.高斯滤波
高斯滤波是一种线性平滑滤波器它采用高斯函数作为权值函数进行图像滤波。高斯滤波的基本思想是通过对图像中每个像素周围的像素进行加权平均从而降低噪声的影响同时保留图像的边缘信息。高斯滤波器会使用一个高斯函数来计算权重距离中心点越近的像素拥有越大的权重距离越远的像素拥有越小的权重。
高斯滤波主要用于去除图像中的高频噪声使图像变得更加平滑同时也可以用于图像模糊或降低图像的细节信息。高斯滤波对高斯噪声的去除效果非常显著可以有效地使图像变得更加平滑
# 设置高斯滤波的内核大小通常选择一个奇数值
kernel_size 5
blurred_image cv2.GaussianBlur(noisy_image, (kernel_size, kernel_size), 0)cv2.imshow(Original Image, noisy_image)
cv2.imshow(Blurred Image, blurred_image)
cv2.waitKey(0)
cv2.destroyAllWindows() 4.双边滤波
双边滤波Bilateral Filtering是一种用于图像去噪的非线性滤波器。与高斯滤波不同双边滤波考虑了像素之间的空间距离和像素值之间的相似性。
原理和功能 空间距离权重除了像素值之间的相似性双边滤波还考虑了像素之间的空间距离。这意味着附近的像素对于滤波的影响更大而远离的像素对滤波的影响更小。 相似性权重双边滤波器使用高斯函数来度量像素值之间的相似性。如果两个像素的值非常相似它们的权重较大。如果它们的值差异很大它们的权重较小。 保留边缘信息相比于一般的平滑滤波器双边滤波器可以保留图像的边缘信息。这是因为它会考虑到边缘处像素的相似性。
双边滤波器可以有效地处理各种类型的噪音包括高斯噪音、椒盐噪音等。
# 应用双边滤波
filtered_image cv2.bilateralFilter(image, d9, sigmaColor75, sigmaSpace75) 在一些名画细节上面修复去噪更加能够体现出来
修复前 修复后 相比高斯滤波修复算法 双边滤波器特别适用于那些需要保留图像细节和边缘的情况。
5.NL-MeansNon-Local Means
NL-MeansNon-Local Means是一种图像去噪算法它通过利用图像中相似区域的信息来降低噪声水平而不会损失图像的细节信息。NL-Means算法不仅可以处理高斯噪声还可以有效地处理泊松噪声等其他类型的噪声。
NL-Means算法的基本思想是对于图像中的每一个像素通过计算该像素周围区域与其他像素区域的相似性来进行去噪。相似性计算可以基于像素强度的差异也可以使用特征向量来进行。NL-Means算法的基本原理如下 相似性比较 对于图像中的每一个像素NL-Means算法首先会在图像的局部区域内搜索与该像素相似的区域。相似性的度量可以基于像素强度的差异也可以使用特征向量来进行。 权重计算 对于每一个相似区域算法会计算一个权重值该权重值表示了该相似区域与目标像素的相似性。相似性越高权重值越大。 加权平均 使用计算得到的权重值NL-Means算法对所有相似区域的像素值进行加权平均得到目标像素的估计值。 重复处理 以上步骤对图像中的每一个像素都进行处理以达到整体去噪的效果。
通过这种方式NL-Means算法能够保留图像的细节信息并在降低噪声水平的同时避免了模糊效果。
def denoise_nl_means(image, h10, hForColor10, templateWindowSize7, searchWindowSize21):denoised_image cv2.fastNlMeansDenoisingColored(image, None, h, hForColor, templateWindowSize, searchWindowSize)return denoised_image
噪音图片 NL-Means去噪后图片 能够看出NL-Means算法保留图像的细节信息且图片没有那么模糊。
总结
综上所述图像去噪是图像处理领域中的重要任务其目的是消除或减弱图像中的噪音以使图像更清晰、更易分析。不同的去噪算法适用于不同类型和强度的噪音因此在实际应用中需要根据具体情况选择合适的方法。同时对于特定的图像处理任务也可能需要结合多种去噪技术以获得最佳效果。在实践中通过理解各种去噪算法的原理和特性可以更好地应用它们来解决实际问题从而提升图像处理的质量和效率。