Canny 边缘检测算法
Steps:
高斯滤波平滑
计算梯度大小和方向
非极大值抑制
双阈值检测和连接
代码结构:
Canny Edge Detection
|Gaussian_Smoothing
||convolution.py
|||convolution()
||gaussion_smoothing.py
|||dnorm()
|||gaussian_kernel()
|||gaussian_blur()
|Sobel_Filter
||sobel.py
|||sobel_edge_detection()
|Canny.py
||non_max_suppression()
||threshold()
||hysteresis()
||main()
代码解读:
1. 高斯滤波平滑
创建一个高斯核(kernel_size=5):
执行卷积和平均操作(以下均以 lenna 图为例)
2. 计算梯度大小和方向
水平方向和竖直方向
梯度图:
3. 非极大值抑制
4. 双阈值检测和连接