canny 最好。但是容易把噪点误判为边界。sobel prewitt log 效果差不多。prewitt比sobel 去噪效果好。roberts马马虎虎。适合什么图片那得看图片的噪点情况,一般canny 算子是最好的。
边缘检测算子一阶的有Roberts Cross算子,Prewitt算子,Sobel算子,Canny算子, Krisch算子,罗盘算子;而二阶的还有Marr-Hildreth,在梯度方向的二阶导数过零点。
Roberts算子
一种利用局部差分算子寻找边缘的算子,分别为4领域的坐标,且是具有整数像素坐标的输人图像;其中的平方根运算使得该处理类似于人类视觉系统中发生的过程。
Sobel算子
一种一阶微分算子,它利用像素邻近区域的梯度值来计算1个像素的梯度,然后根据一定的绝对值来取舍。
Prewitt算子
Prewitt算子是3*3算子模板。2个卷积核dx ,不要形成了Prewitt算子。与Sobel算子的方法一样,图像中的每个点都用这2个核进行卷积,取最大值作为输出值。
各个算子的优缺点:
Robert算子定位比较精确,但由于不包括平滑,所以对于噪声比较敏感。
Prewitt算子和Sobel算子都是一阶的微分算子,而前者是平均滤波,后者是加权平均滤波且检测的图像边缘可能大于2个像素。这两者对灰度渐变低噪声的图像有较好的检测效果,但是对于混合多复杂噪声的图像,处理效果就不理想了。
LOG滤波器方法通过检测二阶导数过零点来判断边缘点。LOG滤波器中的a正比于低通滤波器的宽度,a越大,平滑作用越显著,去除噪声越好,但图像的细节也损失越大,边缘精度也就越低。所以在边缘定位精度和消除噪声级间存在着矛盾,应该根据具体问题对噪声水平和边缘点定位精度要求适当选取。
转载于:https://www.cnblogs.com/bigzhao/p/6000794.html