sobel算子
dst = cv2.Sobel(src,ddepth,dx,dy,ksize)
ddepth:图像深度,一般为-1,表示输出深度与输入深度相同
dx和dy分别表示水平和竖直方向
ksize是Sobel算子大小
sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize = 3)
cv2.CV_64F转化成一种可以带负数的形式
opencv中会有一个截断操作,当像素值小于0时,则直接写为0
白到黑是正数,黑到白是负数,所有的负数会被截断成0,所有要取绝对值
sobelx = cv2.convertScaleAbs(sobelx)
sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize = 3)
sobely = cv2.convertscaleAbs(sobely)
分别计算x和y,再求和
sobelxy = CV.addweighted(sobelx,0.5,sobely,0.5,0)
sobelx:表示Gx
0.5:表示Gx的权重
sobely:表示Gy
0.5:表示Gy的权重
0:表示偏置参数
不建议直接计算xy,效果不好
输出结果