RT

解决方案 »

  1.   

    对的,一阶微分是找峰值,比较好的是canny的方法,找沿着相角方向的梯度第一个极大值。这样出来的单像素的边缘,不存在宽窄的问题。
    如果是判断梯度大于某个阈值,那找到的峰值就会有宽窄之分。就会出现不是单像素的边缘了。二阶是峰值变0点,但有时候并不是0,因为离散的原因。
    所以二阶找过0点很难。通常不会用到。对有噪声的图,在求梯度前,都要平滑。
    平滑会加宽一阶导的支撑域(宽度),画个图就知道了。总结如下:所以对平滑后的图像,如果还是用一阶导来找边缘,并且使用梯度阈值的方法找,会有宽边缘。
    如果使用canny方法,相角方向梯度极大值找,不会有宽边缘。对二阶导的图像,用过0点的方法很难找到合适的边缘。例如zerocross。matlab德edge函数提供这个方法,lz可以试一下。
    即便是二阶导用zerocross,也要先平滑图像。好在二阶导平滑否不会产生0点的偏移。
    你说的不全对,仔细看一下相关的边缘检测代码,就知道了。
    最终原因还是代码实现时,是否采用阈值,是否平滑,影响了边缘的宽窄。