我有55个000图像文件(JPG都和TIFF格式),这是从一本书的图片。
每个页面的结构是这样的:
一些文本
---(水平线)---
一个号码
一些文本
---(水平线)---
另一个号码
一些文本
有可能从任何给定的网页上0-4个水平线。
我需要找到数字是多少,只是水平线以下。
但数字严格遵循对方,在一个页面上从1开始,所以为了找到号码,我并不需要读它:我能检测水平线条的存在,这应该是比都更容易,更安全试图OCR页面检测数字。
该算法是,基本上是:
for each image
count horizontal lines
print image name, number of horizontal lines
next image
现在的问题是:什么是最好的图片库/语言做了“算水平线”的一部分?
可能检测您的线路最简单的方法是使用Hough变换在OpenCV的 (其中有包装多国语言)。
OpenCV的霍夫变换分析会检测到图像中的所有行,返回他们的角度和启动/停止坐标。 你应该只保留其角度接近水平和足够长的人。
O'Reilly的学习OpenCV的详细解释函数的输入和输出 (第156页)。
如果你有良好的对比度,尝试运行连接组件和分析结果。 它可以是另一种寻找通过霍夫线和覆盖的情况下,当你的结构化元素都有点弯曲或者线算法拿起你不希望它拿起线。
连接部件是一个超级快,二光栅扫描算法,并会给你一个面具与你连接的元素在里面打上不同的标签和核算。 您可以放弃任何东西短(在纵横比计算)。 总体而言,这可能是比较一般,速度较快,但可能有点比跑步Hough变换更多地参与。 霍夫另一方面变换将成为对比度伪像甚至在线偶然空缺更耐受。 OpenCV的功能findContours()是找到组件为您服务。
你可能想尝试约翰Resig的 在Javascript OCR和神经网络