OpenCV如何进行图像平滑处理?

22 min read

OpenCV中可以使用多种方法进行图像平滑处理,其中包括:

1、均值滤波:对图像中的每一个像素取周围一定像素的平均值,得到一个新的像素值来代替原像素值。

使用函数cv2.blur()可实现均值滤波,具体用法如下:

import cv2

# 读取原始图像
img = cv2.imread('image.jpg')

# 进行均值滤波处理
blur = cv2.blur(img, (3, 3))

# 显示处理结果
cv2.imshow("Blur Image", blur)
cv2.waitKey(0)

2、高斯滤波:对图像中的每一个像素取周围一定像素的加权平均值,以此得到一个新的像素值来代替原像素值。其中,权值是根据高斯函数来计算的。

使用函数cv2.GaussianBlur()可实现高斯滤波,具体用法如下:

import cv2

# 读取原始图像
img = cv2.imread('image.jpg')

# 进行高斯滤波处理
blur = cv2.GaussianBlur(img, (5, 5), 0)

# 显示处理结果
cv2.imshow("Gaussian Blur Image", blur)
cv2.waitKey(0)

3、中值滤波:对图像中的每一个像素取周围一定像素的中值,得到一个新的像素值来代替原像素值。中值滤波对去除椒盐噪声等特殊噪声效果较好。

使用函数cv2.medianBlur()可实现中值滤波,具体用法如下:

import cv2

# 读取原始图像
img = cv2.imread('image.jpg')

# 进行中值滤波处理
blur = cv2.medianBlur(img, 5)

# 显示处理结果
cv2.imshow("Median Blur Image", blur)
cv2.waitKey(0)