分类:
2009-03-19 16:27:30
Sobel算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边沿的 ,另一个是检测垂直平边沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。由于建筑物图像的特殊性,我们可以发现,处理该类型图像轮廓时,并不需要对梯度方向进行运算,所以程序并没有给出各向同性Sobel算子的处理方法。
由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数, 简单有效,因此应用广泛。美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel算子没有基于图像灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。 在观测一幅图像的时候,我们往往首先注意的是图像与背景不同的部分,正是这个部分将主体突出显示,基于该理论,我们给出了下面阈值化轮廓提取算法,该算法已在数学上证明当像素点满足正态分布时所求解是最优的。
.NET代码如下
for(Times=0;Times<128&&iThreshold!=iNewThreshold;Times++)
{
iThreshold=iNewThreshold;
lP1=0;
lP2=0;
lS1=0;
lS2=0;
for(i=iMinGray;i
{
lP1+=Histogram*i;
lS1+=Histogram;
}
iMean1Gray=lP1/lS1;
for(i=iThreshold;i
{
lP2+=Histogram*i;
lS2+=Histogram;
}
iMean2Gray=lP2/lS2;
iNewThreshold=(iMean1Gray+iMean2Gray)/2;
}
补充Sobel算子的矩阵表达式:
Sobel1=[-1 -2 -1; %检测水平边沿的Sobel算子
0 0 0;
1 2 1];
Sobel2=[-1 0 1; %检测垂直平边沿的Sobel算子
-2 0 2;
-1 0 1];
3. watershed
查找图像的分水岭区域。