将laplacian应用于图像时,
之间有什么区别fspecial('laplacian', alpha)
和
L = del2(U)
他们是否对图像进行相同的操作?
答案 0 :(得分:4)
除了因子4(del2只是2D图像的拉普拉斯的四分之一),它们都接近拉普拉斯算子。它们都使用3x3滤镜,但边缘处理方式不同。它们对alpha
中参数fspecial
使用完全相同的过滤器设置为0.对于参数fspecial
的所有其他值,将提供拉普拉斯算子的更平滑估计,这对于嘈杂的图像。
示例:
[xi, yi] = ndgrid(1:10, 1:10);
data = xi.^2 + yi.^2 + rand(10);
a = 4 * del2(data);
alpha = 0;
b = imfilter(data, fspecial('laplacian', alpha),'replicate');
sum(sum(abs(a(2:end-1,2:end-1)-b(2:end-1,2:end-1))))
给出
ans = 7.061e-13
del2
大约快4倍,因为开销较低,边界表现更好。参数fspecial
设置为0的alpha
不是很平滑。对于非常嘈杂的数据alpha
,可能需要接近1。嘈杂的数值导数本身就是一个话题。
注释:在编辑器中使用ctrl。+ d查看del2和fspecial的来源,你会看到他们在做什么。