使用 cv2 完成卷积运算(图像的特征处理)

1 获取核函数

  1. 获取高斯核

    # 获取高斯核
    kernel = cv2.getGaussianKernel(ksize=3, sigma=5)
    
  2. 获取 Gabor 核

    # 获取Gabor核
    kernel = cv2.getGaborKernel(ksize=ksize, sigma=sigma, theta=theta, lambd=lambd, gamma=gamma)
    

2 直接调用函数对图像进行特征处理

  1. 高斯模糊处理

    使用离散的二维正态分布矩阵对图像进行卷积处理。

    # 高斯模糊处理
    # 使用离散的二维正态分布矩阵对图像进行卷积处理
    frame = cv2.GaussianBlur(frame, ksize=(11, 11), sigmaX=10)
    
  2. 拉普拉斯处理

    使用卷积处理,求图像的二阶偏导和。

    # 拉普拉斯处理
    # 使用卷积处理,求图像的二阶偏导和
    frame = cv2.Laplacian(frame, -1, frame, ksize=5, delta=70)
    
  3. Sobel 图像处理

    结合了高斯处理,使用卷积处理对图像求导。求对图像的 x dx 阶导, y dy 阶导。

    # Sobel 图像处理
    # 结合了高斯处理,使用卷积处理对图像求导。求对图像的 x dx 阶导, y dy 阶导
    frame = cv2.Sobel(frame, ddepth=-1, dx=0, dy=2, ksize=5, delta=70)
    
  4. blur 图像模糊处理

    使用“均匀的且和为 1 ”矩阵对图像进行模糊处理。

    # blur 图像模糊处理
    # 使用“均匀的且和为 1 ”矩阵对图像进行模糊处理
    frame = cv2.blur(src=frame, ksize=(11, 11))
    
  5. boxFilter 图像滤波处理

    使用“均匀的且和为 1”矩阵(normalized=True),或者使用“全为 1 ”的矩阵(normalized=False)对图像进行模糊处理。

    # boxFilter 图像滤波处理
    # 使用“均匀的且和为 1”矩阵(normalized=True),或者使用“全为 1 ”的矩阵(normalized=False)对图像进行模糊处理
    frame = cv2.boxFilter(frame, ddepth=-1, ksize=(2, 2), normalize=False)
    
  6. dilate 图像扩大处理

    根据矩阵对图像进行扩大处理。

    # dilate 图像扩大处理
    # 根据矩阵对图像进行扩大处理
    frame = cv2.dilate(frame, kernel)
    
  7. bilateralFilter 图像去噪处理

    使用 bilateral 核对图形进行过滤处理,与相邻且颜色相近的像素颜色混合。可以达到降噪效果。

    # dilate 图像扩大处理
    # 使用 bilateral 核对图形进行过滤处理,与相邻且颜色相近的像素颜色混合。可以达到降噪效果
    frame = cv2.bilateralFilter(frame, d=10, sigmaColor=17, sigmaSpace=5)
    
  8. medianBlur 图像模糊处理

    使用 median 核(filter)对图形进行模糊处理。

    # medianBlur 图像模糊处理
    # 使用 median 核(filter)对图形进行模糊处理
    frame = cv2.medianBlur(frame, ksize=13)