绘图数字化 - 从图形图像中抓取样本值

end*_*ith 8 ocr charts plot image-processing curve-fitting

这不是真正的"OCR",因为它不能识别字符,但它适用于曲线.有人知道图像处理库或已建立的算法,用于从(光栅)绘图图像中检索值吗?例如,在这张图中,我很难用眼睛读取确切的值,因为网格线之间存在这样的间隙:

替代文字http://i35.tinypic.com/316airl.jpg

我可以使用直边或其他任何东西,但它仍然容易出错.如果有软件只能截取任何旧图的屏幕截图并自动将其转换为值表或可查询的函数,那将是很棒的.

似乎被称为"曲线识别"?也可用于从未发布基础数据的科学论文中的曲线中提取数据.

并且可以获得一些人为指导.例如,没有理由OCR无法读取"100"并将其与线匹配,但是在机器相对于网格线提取曲线的路径之后,让人类给出线数值是可以的.我最感兴趣的是跟踪曲线相对于网格的功能,即使网格以非仿射方式倾斜,旋转或扭曲.

更新:

现在有一篇维基百科文章称为将扫描图转换为数据,链接中有一堆软件.另外一些软件在alternativeto.net上.我想这个理论现在属于http://dsp.stackexchange.com,而软件解决方案属于http://superuser.com

pet*_*ust 5

这非常困难且容易出错.(我们在化学中做了很多这样的事情,我们试图分析化学.)它主要取决于各种参数和条件.

  1. 图像是位图(仅像素)还是矢量(EMF,WMF,SVG,PS,PDF ......)?矢量比像素好很多.我们处理矢量(包括PDF)但不触摸像素.我们的一些collbaorators将尝试使用像素,但仅限于最近的文档.
  2. 如果您遇到像素,那么您的图像是否来自同一个来源?如果是这样,您提取字体信息的可能性很小.我担心你的形象太差,需要大量的工作.但是,如果您可以计算出字体,则如果所有文档都来自同一来源,则您有机会提取文本和数字.您可以使用启发式(规则,例如数字可能的位置)或机器学习(可以训练方法的功能列表).
  3. 您的图像似乎已被扫描(因为轴是像素化的).这使情况变得更糟.对于机器来说,看起来直线的东西是可怕的.您的图片是否在页面上歪斜了?你可能需要去歪斜它.
  4. 如果您有线条和曲线的模型,那么您可能需要将预期参数建模更改为图像.但这不是微不足道的.

我很抱歉悲观.如果您真的想要这些信息,那么可以通过大量投资或与执行此类事务的团队协作来完成.

  • 我的问题是要读取曲线相对于网格线的位置,而不是读取文本.我在问题的第一句中这么说.但我仍然支持我的说法,即OCR在读取数字"100"时没有任何问题,特别是因为我刚刚通过ocrterminal.com,onlineocr.net,f​​ree-ocr.com和googlecodesamples.com运行此图像,他们都阅读了" 100" .这些都针对文本页面进行了优化.如果OCR算法知道它正在寻找数字而不是字母,并且它们沿着网格对齐,那么它将更加准确. (2认同)