费尔曼链码亦称边界编码,是一种2分层图象边缘编码方法,适用于对曲线和边界进行编码。它基于8邻域的思想,利用8个方向码来编码线划图,使任一条曲线或边界都可以用某一原点开始的矢量链来表示。理论上讲,假设一曲线或边界中间有一点(i,j),则其相临的栅格点必然在图3-11(a)所示的8个邻域方向上。这8个方向可定义为东(E=0),东南(SE=1),南(S=2),西南(SW=3),西(W=4),西北(NW=5),北(N=6)以及东北(NE=7)。这8个方向上坐标增量如图3-11(b)所示。
即假设一点的坐标为(i,j),则其邻域坐标,东为(i,j+1),东南为(i+1,j+1),南为(i+1,j),西南为(i+1,j-1),西为(i,j-1),西北为(i-1,j-1),北为(i-1,j),东北为(i-1,j)。因此,对连续线上的一个已知点,只要搜索8个方向总可找到它的后续栅格点,并可用图3-11(a)所定方向代码来表示。反之,已知所定点的方向代码亦可知道其前趋点的坐标位置。
图3-12(a)为一等值线图,其中#1线高程为100m,#2线高程为200m,其费里曼链码编码表如图3-12(b)所示。
这种编码的优点是具有很强数据压缩率,并便于计算长度、面积,便于表示图形凹凸部分,易于存储图形数据。缺点是难于实现叠置运算,不便于合并插入操作,对区域按边界存储,相邻区域的相邻线段会重复存储,使数据冗余。