python+OpenCV笔记(二十):滤波函数——filter2D

        filter2D用于将自定义的滤波器应用于图像,需要为这个函数提供的一个重要参数就是核矩阵

        该函数非常强大,可以生成很多种不同的结果,包括与之前的模糊函数相同的结果,不同的核还可以形成很多不同的滤波器。

不同核的示例

OpenCV API:

cv2.filter2D(src, ddepth, kernel)

参数:

  1. src:输入的图像
  2. ddepth:图像的深度
  3. kernel:卷积核的大小

代码示例:

import cv2 as cv
import numpy as np

src = cv.imread("E:\\qi.png")
img = src.copy()

kernel = np.array([[0, 1.5, 0],
                   [1.5, -6, 1.5],
                   [0, 1.5, 0]])
dst = cv.filter2D(img, -1, kernel)

# 显示图像
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100)
axes[0].imshow(img[:, :, ::-1])
axes[0].set_title("原图")
axes[1].imshow(dst[:, :, ::-1])
axes[1].set_title("结果")
plt.show()
  1. 代码示例中的卷积核为
    \bg_white \begin{bmatrix} 0 & +1.5 &0 \\ +1.5& -6 & +1.5\\ 0 & +1.5 & 0 \end{bmatrix}
    可用于检测图像的边缘
    python+OpenCV笔记(二十):滤波函数——filter2D_第1张图片
  2. 卷积核
    \begin{bmatrix} 0 & -1 &0 \\ -1 & 5 & -1\\ 0& -1 &0 \end{bmatrix}
    可用于锐化图像
    python+OpenCV笔记(二十):滤波函数——filter2D_第2张图片
  3. 卷积核
    \begin{bmatrix} -2 &-1 &0 \\ -1& 1 &1 \\ 0& 1 &2 \end{bmatrix}
    可生成浮雕化的图像
    python+OpenCV笔记(二十):滤波函数——filter2D_第3张图片
  4. 分身(即和本身一模一样)
    卷积核
    \begin{bmatrix} 0 &0 &0 \\ 0& 1 & 0\\ 0&0 &0 \end{bmatrix}
  5. 之前见过的Sobel算子
    卷积核为
    \begin{bmatrix} -1 & -2 & -1\\ 0& 0& 0\\ 1& 2 &1 \end{bmatrix}
    Laplacian算子
    卷积核为
    \begin{bmatrix} 0 & 1 &0 \\ 1& -4& 1\\ 0& 1 &0 \end{bmatrix}等。

你可能感兴趣的:(python+OpenCv,opencv,python,计算机视觉)