-
去除该像素点不会断开区域-linux内核设计与实现 原书第3版 完整版带书签目录下载
资源介绍
(1) 连通图像区域必须细化成连通线结构.
(2) 细化结果最少应该是 8-连通(下面将要解释).
(3) 保留近似终止线的位置.
(4) 细化结果应该近似于中轴线.
(5) 由细化引起的附加突刺(短分支)应该是最小的.
细化结果应该保证第一条要求中所定义的连通性,这一点是最基本的要求,它保证了连
通线结构的数量等于原始图像中连通区域的数量.第二条要求保证所得到的线条总是含有 8
-连通图像的最小数量.第三条要求说明终止线位置应该保持不变.细化可以通过迭代方式
不断去除边界点来实现,重要的是在迭代过程中不要去除端点像素,因为这样不仅会缩短细
化线,丢掉结构信息,而且不能保持其位置不变.第四条要求说明所得线段应能最好地逼近
原始区域的中线,如两个像素点宽的竖线或水平线的真正中线应该位于这两个像素之间半个
像素间距的位置.在数字图像中表示半个像素间距是不可能的,因此得到的结果是一条位于
原直线一侧的直线.第五条要求没有明确指出噪声的影响控制到最低程度,因为判断噪声本
身是一件很难的事.一般不希望原始区域含有会引起突刺的隆起,但当某些较大隆起是区域
特征时,却必须识别它们.应该指出,某些细化算法有去除突刺的参数,不过最好将细化和
去除噪声分开进行,这是由于某些情况下不需要的突刺,可能是另一些情况下所需要的短
线.因此,最好的办法是先进行细化,然后单独去除长度低于某一特定最小值的任何突刺.
一种常用的细化手段是在至少 33 邻域内检查图像的每一点,剥去区域边界.一次剥
去一层图像,直至区域被细化成一条线.这一过程是用迭代法实现的,如算法3.4.在每
次迭代时,每一个像素点用n n 窗函数检查,为了保持连通性或线末端位置,将单像素厚
的边界擦除.在图 3.14 中将会看到,在每次迭代中,值为 1 的外层区域就是用这种方式削
掉的.当迭代结果没有变化时,迭代过程结束,图像得到细化
算法3.4 4-近邻细化迭代算法
对于每一个像素,如果
(1) 没有上近邻(下近邻\左近邻\右近邻)
(2) 不是孤立点或终止线
(3) 去除该像素点不会断开区域
则去除该像素点.
重复这一步骤直到没有像素点可以去除.