OpenCV中的sobel算子边缘检测
代码实现:
#边缘检测(图像梯度)
#一、Sobel算子
img = cv2.imread('cat.jpg')
cv2.imshow('img',img)
#对x方向和y方向求梯度
#ksize默认为3,此时采用Scharr算子,使得边缘更突出
grad_x = cv2.Sobel(img,cv2.CV_32F,1,0,3,ksize=3)
grad_y = cv2.Sobel(img,cv2.CV_32F,0,1,3,ksize=3)
gradx = cv2.convertScaleAbs(grad_x)
grady = cv2.convertScaleAbs(grad_y)
#加权
sobel=cv2.addWeighted(gradx,0.5,grady,0.5,0)
cv2.imshow('sobel',sobel)
cv2.waitKey()
运行结果: