图像处理/超轻OCR(Image processing / super light OCR)

2019-06-28 05:32发布

我有55个000图像文件(JPG都和TIFF格式),这是从一本书的图片。

每个页面的结构是这样的:

一些文本

---(水平线)---

一个号码

一些文本

---(水平线)---

另一个号码

一些文本

有可能从任何给定的网页上0-4个水平线。

我需要找到数字是多少,只是水平线以下。

但数字严格遵循对方,在一个页面上从1开始,所以为了找到号码,我并不需要读它:我能检测水平线条的存在,这应该是比都更容易,更安全试图OCR页面检测数字。

该算法是,基本上是:

for each image
  count horizontal lines
  print image name, number of horizontal lines
  next image

现在的问题是:什么是最好的图片库/语言做了“算水平线”的一部分?

Answer 1:

可能检测您的线路最简单的方法是使用Hough变换OpenCV的 (其中有包装多国语言)。

OpenCV的霍夫变换分析会检测到图像中的所有行,返回他们的角度和启动/停止坐标。 你应该只保留其角度接近水平和足够长的人。

O'Reilly的学习OpenCV的详细解释函数的输入和输出 (第156页)。



Answer 2:

如果你有良好的对比度,尝试运行连接组件和分析结果。 它可以是另一种寻找通过霍夫线和覆盖的情况下,当你的结构化元素都有点弯曲或者线算法拿起你不希望它拿起线。

连接部件是一个超级快,二光栅扫描算法,并会给你一个面具与你连接的元素在里面打上不同的标签和核算。 您可以放弃任何东西短(在纵横比计算)。 总体而言,这可能是比较一般,速度较快,但可能有点比跑步Hough变换更多地参与。 霍夫另一方面变换将成为对比度伪像甚至在线偶然空缺更耐受。 OpenCV的功能findContours()是找到组件为您服务。



Answer 3:

你可能想尝试约翰Resig的 在Javascript OCR和神经网络



文章来源: Image processing / super light OCR