描述: expand_gray填补了在分割图像时,由于需要抑制小的区域导致的区域之间的间隙(mode为image时),或者时在分割重叠区域时(mode为region时);这两种方式都是区域膨胀的结果。该算子的工作原理是在区域中添加一个像素宽的条带,并且其灰度值和区域边界上相邻的像素的灰度值最大落差不能超过参数threshold中设置的阈值(如下图,左图为未执行expand_gray,右图为执行后的mode=image)。对于“循环”类型的图像(例如方向图像),输出区域还会添加灰度差值至少为255 - Threshold的点。
膨胀只发生在被指定为不“禁止”的区域(参数ForbiddenArea)。
注意: mode中的Image和region有以下的不同, 'image':输入区域在被膨胀迭代的过程中,直到它们接触到另一个区域或图像边界,或者由于过高的灰度值差异而停止迭代。由于expand_gray同时处理所有区域,区域间的间隙会均匀分布到所有灰度值相似的区域,在分割重叠区域时是将此区域均匀的分布到两个区域;
'region':不执行膨胀操作,只是通过将重叠区域(具有相似的灰度值)均匀的分配到各个区域,然后再分割重叠区域,所以输出区域是会有间隙的。