文章目录
gradients and edge detection梯度和边缘检测
边缘检测,就是用数学方法找出一幅图像中像素值突变的点。
第一件事,就是找出灰度图像中的梯度,在x方向和y方向中找出可能有边缘的区域。
接着我们会使用canny边缘检测,包括图像降噪,找到图像梯度(利用在水平和竖直方向上的sobel核),非最大值抑制non-maximum suppresion,和滞后阈值hysteresis thresholding。
1 laplacian拉普拉斯算子
# 注意从黑向白映射是一个正的斜坡函数,但从白向黑映射是一个负的斜坡函数
# 所以需要用cv2.CV_64F这种格式
lap = cv2.Laplacian(image, cv2.CV_64F)
lap = cp.uint8(np.absolute(lap))
cv2.imshow("Laplacian", lap)
2 sobel算子
# 水平梯度
sobelX = cv2.Sobel(image, cv2.CV_64F, 1, 0)
sobelX = np.uint8(np.absolute(sobelX))
cv2.imshow("Sobel X", sobelX)
# 垂直梯度
sobelY = cv2.Sobel(image, cv2.CV_64F, 0, 1)
sobelY = np