1
基于MATLAB的数字图像处理研究
1.9.4.1 7.4.1 链 码

7.4.1 链 码

链码在图像处理和模式识别中是常用的一种表示方法,它最初是由Freeman于1961年提出来的,用来表示线条模式,至今它仍被广泛使用。根据链的斜率不同,常用的有4方向和8方向链码。它们的共同特点是直线段的长度固定、方向数有限,因此可以利用一系列具有这些特点的、相连的直线段来表示目标的边界,这样只有边界的起点需要用绝对坐标表示,其余点都可只用接续方向来代表偏移量。由于表示一个方向数比表示一个坐标值所需比特数少,而且对每一个点又只需一个方向数就可以代替两个坐标值,因此链码表达可大大减少边界表示所需的数据量,所以常常用链码来作为对边界点的一种编码表示方法。

从在物体边界上任意选取的某个起始点坐标开始,跟踪边界并赋予每两个相邻像素的连线一个方向值,最后按照逆时针方向沿着边界将这些方向码连接起来,就可以得到链码。因此链码的起始位置和链码完整地包含了目标的形状和位置信息。

使用链码时,起点的选择常是很关键的。对同一个边界,如果用不同的边界点作为链码的起点,得到的链码则是不同的。为解决这个问题,可把链码归一化,给定一个从任意点开始产生的链码,把它看做一个由各方向数构成的自然数。首先,将这些方向数依一个方向循环,以使它们所构成的自然数的值最小;然后,将这样转换后所对应的链码起点作为这个边界的归一化链码的起点。