Python-Opencv中图像梯度【Sobel算子,Laplacian算子】
图像梯度
把图片想象成连续函数,因为边缘部分的像素值是与旁边像素明显有区别的,所以对图片局部求极值,就可以得到整幅图片的边缘信息了。不过图片是二维的离散函数,导数就变成了差分,这个差分就称为图像的梯度。
对于具体算子以及求导推导见此博文[https://blog.csdn.net/qq_18815817/article/details/78625845]
1.Sobel 算子
x方向Sobel算子
y方向Sobel算子
Sobel 代码实现
import cv2 as cv
def sobel_demo(image):
# 由于进行对卷积核卷积后的结果值可能会超过八位,故需要设置数据的类型为cv.CV_32F
grad_x = cv.Scharr(image, cv.CV_32F, 1, 0)
grad_y = cv.Scharr(image, cv.CV_32F, 0, 1)
# 线性变换转换输入数组元素成8位无符号整型
gradx = cv.convertScaleAbs(<