高通滤波最主要的作用是检测边缘
Sobel(索贝尔)(高斯):
对噪音适用性很强,在内部首先使用了高斯滤波对噪音进行过滤,之后再通过一阶导求得图像边缘。【若卷积核size设置为-1,则自动使用的是沙尔滤波算法】
Scharr(沙尔) :
卷积核不可改变的一个3x3大小卷积核,可以检测出比较细小的边缘线(不常用,索贝尔可以代替沙尔)
【 索贝尔和沙尔的缺陷是只能检测一个方向的边缘,要么横轴,要么纵轴,所以调用 完后还需要自己把横轴和纵轴检测到的边缘线加起来才是最终结果】
Laplacian(拉普拉斯):
可以把横轴和纵轴的边缘全部检测出来,但是对噪音比较敏感,在内部没有进行降噪操作,使用之前需要自己手工降噪
索贝尔api
Sobel(src, ddepth, dx, dy, ksize = 3,
scale = 1, detal = 0, boderType = BORDER_DEFAULT)
src : 原图片
ddepth :输出图片位深
dx = 1,则检测出y方向边缘
dy = 1,则检测出x方向边缘
ksize :卷积核大小,若=-1,则为沙尔算法
以下代码就是用索贝尔算法例子
import cv2
import numpy as np
img =