我有一个文档图像(b/w, 300dpi),包含报纸格式的文本(标题,段落列等)。
-我如何检测段落列,以黑色填充它们?
-我怎么能得到与洪水填充文本列的距离?
是否可以使用OpenCV或EmguCV/c# ?
看这个链接http://goo.gl/6djHt(没有垃圾邮件,这是一个短链接)我的意思。
提前感谢任何提示和代码片段。
您可以尝试计算图像中每列黑色像素的数量。这将给你一个像这样的数组(所有的数字都是组成的):
0 0 0 987 935 967 923 975 954 932 944 0 0 0 923 965 987 933 965 976 922 0 0 0
所以基本上你有一些大数和一些零。较大的数字表示包含文本的列。0表示不包含任何内容的列。如果图像中有噪声,你可能不会得到零,但你可能会得到小数字,你可以处理它们。
您可以使用上面的数组拆分图像并获得列。然后,您可以使用类似的技术来查找文本行(通过将图像行中的黑色像素相加)。你也可以用这种方法来测量段落之间的距离。
当文本行不是水平的时候,这个方法可能会失败。同样,当你需要分析一份报纸的整个页面并且布局很复杂时,这种方法可能会失败。但是如果你需要处理像你的链接中的图片,这是一个很好的技巧。
试试cvDetectParagraph().
严肃地说,另一个海报已经回答了你的问题,你似乎只是想让别人为你做这件事。如果你能摆脱这么懒,软件编程就不会成为一种职业了。