当前位置:   article > 正文

python+OpenCV笔记(二十):滤波函数——filter2D_cv2.filter2d

cv2.filter2d

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

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

不同核的示例

OpenCV API:

cv2.filter2D(src, ddepth, kernel)

参数:

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

代码示例:

  1. import cv2 as cv
  2. import numpy as np
  3. src = cv.imread("E:\\qi.png")
  4. img = src.copy()
  5. kernel = np.array([[0, 1.5, 0],
  6. [1.5, -6, 1.5],
  7. [0, 1.5, 0]])
  8. dst = cv.filter2D(img, -1, kernel)
  9. # 显示图像
  10. fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100)
  11. axes[0].imshow(img[:, :, ::-1])
  12. axes[0].set_title("原图")
  13. axes[1].imshow(dst[:, :, ::-1])
  14. axes[1].set_title("结果")
  15. plt.show()
  1. 代码示例中的卷积核为
    \bgwhite[0+1.50+1.56+1.50+1.50]
    可用于检测图像的边缘
  2. 卷积核
    \begin{bmatrix} 0 & -1 &0 \\ -1 & 5 & -1\\ 0& -1 &0 \end{bmatrix}
    可用于锐化图像
  3. 卷积核
    \begin{bmatrix} -2 &-1 &0 \\ -1& 1 &1 \\ 0& 1 &2 \end{bmatrix}
    可生成浮雕化的图像
  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}等。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/208240?site
推荐阅读
相关标签
  

闽ICP备14008679号