链码(又称为freeman码)是用曲线起始点的坐标和边界点方向代码来描述曲线或边界的方法,常被用来在图像处理、计算机图形学、模式识别等领域中表示曲线和区域边界。它是一种边界的编码表示法,将图像中像素的绝对位置转换成了相对位置,用边界方向作为编码依据,为简化边界的描述,一般描述的是边界点集。
常用的链码按照中心像素点邻接方向个数的不同,分为4连通链码和8连通链码。4连通链码的邻接点有4个,分别在中心点的上、下、左和右。8连通链码比4连通链码增加了4个斜方向,因为任意一个像素周围均有8个邻接点,而8连通链码正好与像素点的实际情况相符,能够准确地描述中心像素点与其邻接点的信息。因此,8连通链码的使用相对较多。借用百度百科的一幅图:
链码:11076765543322
归一化链码:把原链码看作由各方向数构成的自然数,将该码按一个方向循环,使其构成的自然数最小,此时形成归一化链码,也称规格化链码。归一化码=07676554332211
一阶差分链码:通过计算相邻两个元素方向变化(逆时针方向)的数字得到。就是前一个数字变化到后一个数字需要经过的步数,注意是逆时针方向,比如1->1经过0步,1->0经过7步,对照8链码图仔细琢磨一下就知道了。一阶差分链码=0777177077070
归一化的一阶差分链码:就是对一阶差分链码作归一化处理,即把差分链码链码看作由各方向数构成的自然数,将该码按一个方向循环,使其构成的自然数最小。归一化的一阶差分链码=0700777177077
原来如此