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}
    可用于检测图像的边缘
  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}等。
  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值