📜  cv2 高斯模糊 - Python (1)

📅  最后修改于: 2023-12-03 15:14:24.447000             🧑  作者: Mango

cv2 高斯模糊 - Python

在计算机视觉中,高斯模糊(Gaussian Blur)是一种常用的图像处理技术,可以用来使图像变得更加平滑(各向同性滤波)。

什么是高斯模糊

高斯模糊是一种线性滤波技术,它使用高斯函数来生成卷积核,可以在保留图像结构的同时减少噪音。

在进行高斯模糊时,我们需要指定一个卷积核的大小和标准差(sigma),卷积核的大小会影响平滑程度,标准差越大,图像越模糊。

在 Python 中使用 cv2 进行高斯模糊

在 Python 中,我们可以使用 OpenCV 库(cv2)提供的函数 cv2.GaussianBlur() 来进行高斯模糊。

import cv2

# 读取图像
img = cv2.imread('test.jpg')

# 设置卷积核大小和标准差
kernel_size = (5, 5)
sigma = 1.5

# 高斯模糊
img = cv2.GaussianBlur(img, kernel_size, sigma)

# 显示图像
cv2.imshow('Gaussian Blur', img)
cv2.waitKey(0)

在上面的代码中,我们首先读入了一张图像,然后设置了卷积核的大小和标准差。接着使用 cv2.GaussianBlur() 函数对图像进行高斯模糊,最后显示处理后的图像。

cv2.GaussianBlur() 函数的参数说明

cv2.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]])

  • src:输入图像。
  • ksize:卷积核的大小。可以是一个二元组 (kx, ky) 或者一个正整数 k,二元组中的两个值可以不同,指定不同的水平和垂直方向的卷积核大小。
  • sigmaX:X 方向上的高斯核标准偏差。
  • dst:输出图像。如果未提供,函数会自动创建一个和输入图像相同大小和类型的输出图像。
  • sigmaY:Y 方向上的高斯核标准偏差。如果为零,则默认使用 sigmaX
  • borderType:像素边界模式。默认值为 cv2.BORDER_DEFAULT
注意事项

在使用高斯模糊时需要注意卷积核的大小和标准差的取值,这会影响到输出图像的质量和性能。通常情况下,建议使用奇数大小的卷积核,标准差的取值经验范围是 0.1 到 100 之间。

在处理图像时,高斯模糊常常用于降噪、边缘检测等方面,可以提高算法的鲁棒性和准确度。