标签: matlab
我目前正在进行一项任务,我处于这两种调用sobel运算符的方式之间。
sobel
一个是fil = fspecial('sobel'); h = imfilter(image,fil);
fil = fspecial('sobel'); h = imfilter(image,fil);
第二个是im = edge(image , 'sobel') ;
im = edge(image , 'sobel') ;
第二个的效果非常期待,它以更明显的方式显示边缘,而我无法掌握第一个人正在做什么。
答案 0 :(得分:2)
不是边缘检测方面的专家,但查看EDGE和FSPECIAL的MATLAB文档,表明fspecial('sobel')生成了一个强调水平<3的3乘3过滤器/ em> edge,您应该将其转置为强调垂直边缘。另一方面,EDGE似乎使用更通用的算法。那可以解释为什么EDGE的结果看起来更像你的期望。
fspecial('sobel')