如何在Python中使用OpenCV对图像执行双边滤波操作?

如何在Python中使用OpenCV对图像执行双边滤波操作?

双边滤波操作在平滑图像和去除噪声方面非常有效。双边滤波的主要优点是它可以保留边缘,而平均和中值滤波不能保留。与其他滤波器相比,双边滤波操作较慢。我们可以使用 cv2.bilateralFilter() 方法对图像执行双边滤波操作。

语法

以下是该方法的语法。

cv2.bilateralFilter(img, d, sigmaColor, sigmaSpace)

此方法接受以下 参数

  • img − 应用双边滤波操作的输入图像。

  • d − 表示像素邻域直径的整数类型的变量。

  • sigmaColor − 表示颜色空间中的滤波器sigma的整数值。值越大,颜色之间的距离越远,它们就开始混合。

  • sigmaSpace − 表示坐标空间中的滤波器sigma的整数值。它的值越大,颜色在sigmaColor范围内的像素混合得越远。

步骤

要执行双边滤波操作,可以按照以下步骤进行−

导入所需库。在以下所有Python示例中,所需的Python库是 OpenCV 。确保您已安装它。

import cv2

读取输入图像。

img = cv2.imread('birds.jpg')

在输入图像上应用双边滤波。我们将d,sigmaColor和sigmaSpace分别作为9、15和15传递给函数。

bilateral = cv2.bilateralFilter(img, 9, 75, 75)

显示双边过滤后的图像。

cv2.imshow('bilateral.jpg', bilateral)
cv2.waitKey(0)
cv2.destroyAllWindows())

示例

让我们看一个对输入图像执行双边滤波操作的示例。

import cv2

# Read the image.
img = cv2.imread('birds.jpg')

# Apply bilateral filter with d = 9,
# sigmaColor = sigmaSpace = 75.
bilateral = cv2.bilateralFilter(img, 9, 75, 75)

# display the output
cv2.imshow('bilateral.jpg', bilateral)
cv2.waitKey(0)
cv2.destroyAllWindows()

我们将使用以下图像作为 输入文件 在此程序中−

如何在Python中使用OpenCV对图像执行双边滤波操作?

输出

当我们执行以上代码时,它将产生以下输出 **** −

我们使用d = 9,sigmaColor = 55和sigmaSpace = 55应用了双边滤波

我们得到以下输出窗口−

如何在Python中使用OpenCV对图像执行双边滤波操作?

注意输入图像和经过双边滤波后的图像之间的区别。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python OpenCV