opencv-python图像增强一:传统图像去噪方法整理

一、简介:

在数字图像处理领域,噪声一直是影响图像质量的重要因素。无论是拍摄过程中的环境干扰,还是传输过程中的信号失真,噪声都可能导致图像模糊、细节丢失,甚至影响后续的图像分析和应用。为了提高图像的视觉效果和使用价值,图像去噪技术应运而生,成为图像预处理环节中不可或缺的一环。在本文中介绍几个常用的传统图像去噪的方法以及其应用情景。

文章目录

  • 一、简介:
  • 二:常用的去噪方法梳理:
  • 三:简述与实现方法:
    • 3.1均值滤波
    • 3.2中值滤波
    • 3.3高斯滤波
    • 3.4双边滤波
    • 3.5非局部均值去噪
    • 3.6引导滤波去噪
    • 3.7小波变换去噪

二:常用的去噪方法梳理:

在传统图像处理领域,去噪技术是提高图像质量的重要手段。以下是一些常见的去噪技术:

  1. 均值滤波去噪:该方法通过对图像中的每个像素点及其邻域内的像素点取平均值,来替代原始像素值,从而实现去噪。均值滤波简单易实现,但容易导致图像边缘模糊。
  2. 中值滤波去噪:中值滤波将图像中每个像素点与其邻域内的像素点进行排序,取中值作为滤波结果。这种方法在去除噪声的同时,能较好地保护图像的边缘信息。
  3. 高斯滤波去噪:高斯滤波是一种加权平均滤波,权重是根据高斯函数计算得出的。它能够有效地去除图像中的高斯噪声,同时保留图像的细节。
  4. 双边滤波去噪:双边滤波结合了空间邻近度和像素值相似度,是一种保边缘的滤波方法。它既能去除噪声,又能保持图像的边缘信息。
  5. 非局部均值去噪:非局部均值去噪考虑了图像中重复的纹理信息,通过搜索整个图像来寻找相似块,并进行加权平均。这种方法在去除噪声的同时,能更好地保持图像的细节和结构。
  6. 引导滤波去噪:引导滤波利用引导图像与待滤波图像之间的关系,对图像进行局部线性滤波。这种方法在去噪的同时,能有效保护图像的边缘和细节。
  7. 小波变换去噪:小波变换将图像分解为不同尺度和方向的小波系数,通过对这些系数进行阈值处理,达到去噪的目的。小波变换去噪在去除噪声的同时,能较好地保留图像的纹理和细节。

三:简述与实现方法:

3.1均值滤波

均值滤波是一种简单的图像去噪方法,属于线性滤波器的一种。它的基本思想是用目标像素周围邻域内的像素的平均值来代替目标像素的值,从而消除图像中的随机噪声。
均值滤波常用于图像预处理阶段,特别是在需要快速去噪且对图像细节要求不高的场合或者用于模糊图像细节只保留颜色等图像低频信息。

代码如下:

import cv2
# 读取图像
image = cv2.imread('noisy_image.jpg', cv2.IMREAD_GRAYSCALE)
# 应用3x3的均值滤波
blurred_image = cv2.blur(image, (3, 3))
# 显示原图和均值滤波后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Blurred Image', blurred_image)
# 等待按键后退出
cv2.waitKey(0)
cv2.destroyAllWindows()

3.2中值滤波

中值滤波是一种非线性的数字滤波技术,主要用于去除图像中的椒盐噪声(由离散的黑白像素组成)和其他类型的脉冲噪声。中值滤波器的核心思想是使用像素邻域中的像素值的中值来代替目标像素的值。
中值滤波一般都用在黑白蒙版上用来去除二值化后所带来的椒盐噪声,以此来获取干净的蒙版。

代码如下:

import cv2

# 读取图像
image = cv2.imread('noisy_image.jpg', cv2.IMREAD_GRAYSCALE)
# 应用3x3的中值滤波
median_filtered_image = cv2.medianBlur(image, 3)
# 显示原图和均值滤波后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Median Filtered Image', median_filtered_image)
# 等待按键后退出
cv2.waitKey(0)
cv2.destroyAllWindows()

3.3高斯滤波

你可能感兴趣的:(计算机视觉,图像处理,人工智能)