最近在做一个东西,需要使用字符的分割,如下图所示
可以看到这里的每个字符互相之间是没有粘连的,那么如何把他们分割开来呢?一个很简单的想法就是通过连通域进行分割,每个字符是一个连通域,不同字符之间是不同的连通域,因为这里没有粘连,所以处理起来是非常方便的。
那么重点就来了,如何实现连通域的分割呢?
原来的打算是通过扫描图像,通过寻找不同字符的边缘定位不同的字符,但是我发现对于“O”这种字符,由于他有外边缘和内边缘之分,在实现的过程中还要不断的判断,非常麻烦,纠结了很久最后没有想出简单的方法规避这个问题,最终也没有动手去实现。
这里介绍一种简单易于实现的方法实现连通域分割,对于我这里的这幅图像是二值图像,我可以通过找到一个未访问过的前景像素点以后,就不断的遍历与之相邻的且未经遍历的前景像素点,直到无法找到这样的像素点,则一个连通域遍历结束。
下面的算法的流程:
1、扫描图像,直到当前像素为前景像素且未被访问过&