细化处理即删除标记像素,但不会影响图像的性质(连接、方向等)
标记目标像素删除需要满足6个条件:
1.p的灰度值为255,即p不是背景;
2.x0、x2、x4、x6不全为255;(不然删除p,会造成图像空心)
3.x0-x7至少有2个255;(若只有一个255,则p为图像的某个端点,不能删除否则影响图像性质,若没有255,则p为孤立点,也不能删除)
4.p的8联通区域连接数为1,即Nc(p)=1,此时p称为可删除点;
补充:Nc(p)=2为连接点;Nc(p)=3为分支点;Nc(p)=4交叉点。《数字图像处理》第二版,武汉大学出版社
5.假设x2被标记删除,x2=0时,p的联通连接数为1;
6.假设x4被标记删除,x4=0时,p的联通连接数为1。
对图像从左到右,从上到下进行迭代每个像素。在迭代周期,对于每个像素p,如果满足以上6个要求,则标记它,在当前迭代周期结束时,将所有标记像素变为背景值。若某个迭代周期不存在标记点,算法结束。
8联通连接数公式:
当2i+2=8时,x8=x0;xi(上划线)=1-xi(0 or 1)
c++代码:
void Hilditch(Mat& image)
{
int a[9],b[9],mark,check;
int nr,nc;
nr=image.rows;
nc=image.cols;
mark=