用于照片的光学字符识别程序

时间:2011-01-27 18:36:19

标签: matlab ocr

我需要在Matlab(或任何其他可以做到这一点的语言)中开发一个光学字符识别程序,以便能够提取这张照片上的阅读。

程序必须能够上传尽可能多的图片文件,因为我需要处理大约40000张图片。

此任务的一般目的是记录照片中显示的特定燃气表的日内气体读数。这是一个网络摄像头,目前设置为每分钟记录读数,因此OCR程序将有助于获得历史性的日内气体读数数据。

哪个是最好的软件,有没有可用的在线资源?

2 个答案:

答案 0 :(得分:4)

我将基本识别步骤分解如下:

  1. 在图像中找到仪表显示
  2. 隔离并清理数字
  3. 计算要素
  4. 使用您使用历史示例训练过的模型对每个数字进行分类
  5. 假设特定位置的相机不移动,步骤1只需要执行一次。第2步将包括增强对比度和过滤噪音等内容。第3步可以包括您可以想到的任何有用的计算,例如“墨水”(白色)像素的平均值和偏斜。第4步将利用您构建的模型将单个数字分类为“0”,“1”,......“9”,并且可以使用k近邻,逻辑回归,SVM,神经网络等来完成。 / p>

答案 1 :(得分:2)

在Predictor的回答中,有几件事情会变得简单:将凸轮直接放在仪表上方,增加足够的光线,可能在仪表周围放置亮粉色条带以帮助分割显示屏:)。

执行此操作并且凸轮保持固定后,您可以使用一次手动过程,然后将其应用于所有后续图像以分割出数字。如果照明良好且一致,您可能只能使用简单的模板匹配来识别每个分段数字。

实际上,一旦你得到了所有数字的样本,你甚至可以将它们分类为更简单的东西(比如阈值图片的总和)。