我想知道是否有人会给我指向图像rec包的指针,这将有助于我识别“文本”(不是OCR,只是看起来像文本的东西)和黑框框架。所以,假设:
text
+----------+
| |
| text1 |
| |
| |
+----------+
text
我如何识别“文本”框是文本,例如,text1是否在框内?
对模糊问题道歉......我不知道从哪里开始。这不是家庭作业,顺便说一句。
答案 0 :(得分:2)
[这是我们感兴趣的。]我假设你的输入实际上是一个位图 - 像素的矩形矩阵。第一个问题是它是否与轴对齐 - 如果扫描它可能不是。你可能需要去偏移算法(相当过时,但这是一个有用的开始:http://www.eecs.berkeley.edu/~fateman/kathey/node11.html)
经典线检测是霍夫变换(http://en.wikipedia.org/wiki/Hough_transform),尽管我们当前的合作者对于简单的盒子和将像素投影到不同视点上的效果要好于此 - 类似于层析成像。旋转图像并计算投影线上点的密度/直方图。对于提供清晰信号的简单盒子。
对于文本,我怀疑你要么必须有一组可能的字体,要么使用机器学习。在后者中,您必须设计特征,然后选择一系列由人类分类为文本而非文本的图像。然后训练你的算法(并且有许多神经网络,最大熵等)。
像素图的质量有很大差异。 20年前的文档,比通过绘制程序和转储为PDF而创建的文档的位图要困难得多(当然,如果你能解释PDF格式的文本有助于达成一致)。
答案 1 :(得分:1)
您可以应用任何边框检测算法来检测框。由于文本的颜色与背景颜色不同,您甚至可以使用线性搜索来查找“文本”的黑色像素。我可能错了,对不起。
答案 2 :(得分:0)
一个非常简单的算法是从左到右和从上到下扫描,寻找组成盒子左上角的三个黑色像素(然后继续扫描三个像素,将组成匹配的右下角)。一旦您以这种方式识别图像中的每个框,您就可以扫描内部部分,并假设任何非白色像素表示框中有一些文本。当然,这不会区分框内的文本和图像,但无论如何这将是一个更加困难的问题。