2009-10-25 28 views
1

我想知道是否有人会给我指向图像rec包,这将帮助我识别“文本”(而不是OCR,只是看起来像文本)和黑框框架。所以,假设:图像识别:一个框和随机放置的文本

text 
+----------+ 
|   | 
| text1 | 
|   | 
|   | 
+----------+ 
    text 

如何识别“文本”框是文本,并且说text1是在框内?

道歉的模糊的问题......我不知道从哪里开始。这不是家庭作业,顺便说一句。

+0

您是从一个Windows应用程序的屏幕截图开始的,并且您正在尝试识别文本框和文本框中的文本? – MusiGenesis 2009-10-25 15:10:34

+0

不,更简单...我有一个盒子和一个gif文件中的文本。我需要认识(如果有的话)一个盒子和随机文本。 – 2009-10-25 15:12:34

+0

@Dervin所以会有一些ASCII(http://users.physik.fu-berlin.de/~goerz/blog/wp-content/uploads/2008/09/ascii.gif)是一个很好的例子吗?因为如果是这样,这不是微不足道的 – 2009-10-25 15:41:58

回答

2

[这是我们感兴趣的。]我假设你的输入实际上是一个位图 - 一个矩形的像素矩阵。第一个问题是它是否与轴线对齐 - 如果它被扫描过,它可能不是。尽管我们目前的合作者对于简单的盒子和项目像素在不同的视点上做的比这个更好 - 类似的,但是经典的线条检测是霍夫变换(http://en.wikipedia.org/wiki/Hough_transform) - 类似的到断层扫描。旋转图像并计算投影线上点的密度/直方图。对于提供清晰信号的简单盒子。

对于文本我怀疑你要么有一套可能的字体或使用机器学习。在后者中,您必须设计功能,然后选择一系列由人类分类为图像而非文本的图像。然后训练你的算法(并且有许多神经网络,最大熵等),然后训练这些算法。

像素图的质量有很大的不同。 20年前的文档,比通过绘图程序创建的文档的位图要难得多,并且倾倒为PDF(当然,如果您可以解释PDF中的文本,这对文档有很大的帮助)。

+0

我的文档很简单...它们是gif图像,所以它们很干净。 – 2009-10-25 15:13:20

+0

@Dervin GIF只是像素的传输格式。他们可以持有非常混乱的文本(例如SO中的验证码)或相当干净的文本 - 例如SO本身的字体。但是当详细分析时,许多图像并不干净,因为它们可能包含抗锯齿 – 2009-10-25 15:32:13

+0

彼得,图像会更接近此:http://images.freshmeat.net/editorials/r_intro/images/line-graph-1.jpg – 2009-10-25 15:48:55

1

您可以应用任何边界检测算法来检测框。并且由于文本的颜色与背景的颜色不同,您甚至可以使用线性搜索来查找“文本”的黑色像素。我可能是错的,对此感到遗憾。

0

一个非常简单的算法将扫描left-to - 右上角,从上到下寻找构成盒子左上角的三个黑色像素(然后继续扫描构成匹配右下角的三个像素)。一旦以这种方式识别了图像中的每个方框,就可以扫描内部部分,并假定任何非白色像素表示方框中有一些文本。当然,这并不能区分文本框和图像内的图像,但这无疑会是一个更加困难的问题。

+0

对于我这个天真的问题感到抱歉,但是如果在你的文档中你有一个小y坐标的T,会发生什么?难道不会和左角混淆? – 2009-10-25 15:38:47

+0

你不能假设正好有3个像素 - 这取决于线宽,光栅化程序的注册,反锯齿等等。 – 2009-10-25 16:17:34

+0

@Dervin:你可以通过检查左边的像素来排除一个“T”,你可以通过检查左边和上边来排除一个“+”,但是所有这些都假设了一个相对简单的图像。我的算法对于您在peter的评论下发布的示例图片来说效果不佳。它不会拾起图表框右下角,它会错误地将“5”的左上角和“DJIA”中的横向“D”识别为拐角等。 – MusiGenesis 2009-10-25 18:19:54