>pegasus 抱歉, 不过你列出了几个数学名词实在吓人, 赶快将公式贴到这吧
不好意思, 这些名词是有些吓人,
而且他们的功能只是进行边缘增强
1. 导数法:
导数就是原函数相对于若干变元的变化率, 在图像领域往往用相邻像素的差分来代替导数:
delta-x(f(i,j)) = f(i,j) - f(i-1,i) (X方向的差分)
delta-y(f(i,j)) = f(i,j) - f(i,i-1) (Y方向的差分)
导数计算简单易行, 但是有方向性, 实际图像一般不用
2. 梯度法
图像函数f(x,y)的梯度函数是一个矢量函数, 其大小为:
sqrt((df/dx)^2 + (df/dy)^2), 这里df/dx, df/dy均为偏导数,
其方向为:
arctan((df/dy)/(df/dx)), 这里df/dx, df/dy均为偏导数,
梯度运算对边界很敏感, 而且能够克服导数运算的方
向性, 但是计算比较复杂, 实际图像处理中往往用近似
计算法:
Grade(f(i,j)) = |delta-x(f(i,j))| + (delta-y(f(i,j))|
= |f(i,j)-f(i-1,j)| + |f(i,j)-f(i,j-1)|
(简单吧!
3. 拉普拉斯算子
此为导数算法的高阶形式, 也具有旋转不变性
计算公式为:
d^2(f(x,y))/d-x^2 + d^2(f(x,y))/d-y^2, 这里d^2f/dx^2, d^2f/dy^2均为二阶偏导数
近似计算公式为:
|f(i+1,j) + f(i-1,j) + f(i,j+1) + f(i,j-1) - 4f(i,j)|
(简单吧!
经过梯度运算或者拉普拉斯算子计算后, 图像的边缘部分就会得到增强
根据某个阈值, 就可以粗略地给出原始图像中的轮廓.
HuiZhang大侠介绍的边界跟踪方法效果比简单地边缘增强要好,
但是实现起来比较麻烦, 我就不再详细介绍了