【发布时间】:2014-01-22 16:30:32
【问题描述】:
我正在尝试以编程方式读取在 Paint 中手绘的地图。地图如下所示:
http://i.stack.imgur.com/mxlXU.png
我需要知道地图的每个像素属于哪个区域以及它们的名称。
想到了以下方法,不知道有没有更简单或者更快(原图很大)的方法:
- 检测区域:从每个像素填充并保存区域。这与文字不符。
- 检测文本/“噪声”:再次填充每个像素,但这次使用之前检测到的相邻像素区域作为边界。例如。当对“Abc”区域中的文本像素执行此操作时,不属于“Abc”周围区域的所有内容都将被淹没。然后丢弃面积超过特定数量的区域,例如 20 像素。这样做是为了匹配完全包含在该区域中的字母(面积很小)。
- 将区域的像素(包括在 2 中检测到的像素)保存在图像文件中,并将每个像素输入tesseract 以获取区域名称。
我发现上面的方法很复杂,而且似乎很慢(虽然我还没有完全实现它)。它也不能很好地处理缺少边界像素的完全封闭区域。有没有更简单/更好的解决方案来做到这一点?
【问题讨论】:
标签: algorithm language-agnostic computer-vision flood-fill