我正在为我的一个班级编写一个OCR程序,我试图在文本中找到圆形闭合区域来对字符进行分类。单词已被镂空。例如,在此图像中: http://i.imgur.com/VLHJp.jpg
我想找到圆形O的位置,甚至是E中的半圆。我试图将像素转换为数组,然后循环遍历所有白色像素,找到闭合路径,但这没有不行。但是,我可能没有正确实现这一点。还有其他方法吗?提前谢谢。
编辑:
不幸的是我不能使用Tesseract或其他OCR程序,因为我必须为我的大学课程开发自己的程序。我已经使用AForge库来执行许多任务,例如骨架化,并希望在那里使用圆形检测或形状检测类,但这些形状太过于钝,无法使用它。
答案 0 :(得分:1)
查找封闭区域的方法之一是使用填充填充算法。假设图像边缘的像素(例如0,0)不能处于闭合区域,从那里开始并泛滥。然后你可以消除洪水中的所有像素。
处理图像中的其他像素(不属于您的边界像素集)并进行泛洪。这些洪水是“封闭的”,如果你想要它们到达图像的边缘,你可以消除它们。每次泛光应该采用合理数量的像素,因此该算法可以非常快速地消除像素。
在您的情况下,我建议您需要设置最小区域(像素数)以排除噪音。