Sobel算子
开头来张帅哥......----------------------这是严谨的分割线--------------------------
1、Sobel算子(索贝尔算子) Sobel算子是一种用于边缘检测的离散微分算子, 主要用于获得数字图像的一阶梯度。 该算子用于计算图像明暗程度近似值,根据图像边缘旁边明暗程度把该区域内超过某个数的特定点记为边缘。 Sobel算子在Prewitt算子的基础上增加了权重的概念,认为相邻点的距离远近对当前像素点的影响是不同的,距离越近的像素点对应当前像素的影响越大,从而实现图像锐化并突出边缘轮廓。 Sobel算子的边缘定位更准确,常用于噪声较多、灰度渐变的图像。 Sobel算子如下:import cv2 as cv
def sobel(img):
x=cv.Sobel(src,cv.CV_16S,1,0)
y=cv.Sobel(src,cv.CV_16S,0,1)
gradx=cv.convertScaleAbs(x)
cv.imshow("x",gradx)
grady=cv.convertScaleAbs(y)
cv.imshow("y",grady)
res=cv.addWeighted(gradx,0.5,grady,0.5,0)
return res
src=cv.imread("E:/image/lena.jpg")
cv.imshow("origin",src)
res=sobel(src)
cv.imshow("sobel",res)
后两张图是展示的 x和y方向上的梯度。

