图像标识:4邻域标记算法的两次扫描分析

写在前面:

由于实习,近半年没有写博客了,接下来想在:图像描述 方面有所开拓,姑且用这篇简单的博客来做个入门准备吧;


问题:

图像标识在图像描述领域算是一个先前步骤:在图像预处理(亮度、对比度、清晰度、几何位置)之后,经过分割,就要对分割的区域进行分类,就需要经过图像标识——于此,很容易遇到两个概念:4邻域标记法 和 8邻域标记法;而这两种标记法都会对输入的灰度图进行两次扫描,得出同一前景目标的连通域,而且两者算法思路一致,所以下文用4邻域标记法的两次扫描作为例子分析;


算法思路:

1、什么是4邻域和8邻域?

用格子表示一张输入图片的像素点;姑且用下面的图表示:


如图左边A像素点周围的四个点为:A像素点的4邻域;

如图左边B像素点周围的八个点为:B像素点的8邻域;


2、什么是4邻域模板和8邻域模板?

用格子表示一张输入图片的像素点;姑且用下面的图表示:


如图左边是4邻域扫描模板,右边是8邻域的扫描模板;所谓扫描模板就类似于腐蚀、或者卷积的模板一样,在原输入图像左上角开始扫过去,用有色区域和原图对应区域进行比较,或者运算;


3、第一次扫描算法思路?

a、输入图片(二值灰度图)目标像素点的值:非0;背景像素点的值:0;

b、建立一个等价集合:用来存放相同标签的连通区域有哪些;

     eg.标签1和标签3为同一个连通域;标签2和标签5为同一个连通域;标签4为一个连通域;

     记为:{{1,3}、{2,5}、{4}}

c、开始扫描

     i)用4邻域扫描模板扫描,如果A点不为0,上方和左方的点为0,则A点标记为一个新的标签(第一个标签为1,由此类推);

     ii)如果A点不为0,上方和左方的点有且只有一个不为0,则A 被赋予不为0者的值;

     iii)如果A点不为0,上方和左方的点都不为0,则A 被赋予两者中最小值;并且将左方、上方的标签放在同一个小类中,(其实就是A点连接了上方的标签和左方的标签)eg.A点不为0,上方为1,左方为0,则A被赋值最小者:1,并且形成{1,3}的小类;


4、第二次扫描算法思路?

a、继续扫描,如果A不等于0,则将邻域中不同标签取最小者,即:合并集合;

     eg.把{{1,3}、{2,5}、{4}}简化成:{{1}、{2}、{4}}

     动态过程如下图所示:



5、手稿例子:假设阴影部分是原图像中的三个目标,其他格子值为0;(背景)


猜你喜欢

转载自blog.csdn.net/Errors_In_Life/article/details/78826075