在边缘检测算法里面Sobel是比较简单的一个算法,但是其检测出来的边缘往往是比较粗的,效果不是很好,因为我们最理想的边缘肯定就是一个宽度为1的细线。
Canny算法在此基础上进行了改进,通过使用边缘的梯度信息进行非最大值抑制(NMS)和利用双阈值,这些措施消除了假性边缘,提高了边缘检测的效果。
Canny边缘检测分为以下几个部分:
-
高斯滤波
-
Sobel边缘检测
-
非最大值抑制
-
双阈值边缘检测
-
弱边缘连接
FPGA在实现的时候也是分为以上几个部分:
FPGA仿真结果图:
原图:
Python得到的结果图: