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

时间:2009-11-01 18:43:04

标签: image-processing charts plot ocr curve-fitting

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

alt text

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

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

并且可以获得一些人为指导。例如,没有理由OCR无法读取“100”并将其与线匹配,但是在机器相对于网格线提取曲线的路径之后,让人类给出线数值是可以的。我最感兴趣的是跟踪曲线相对于网格的功能,即使网格倾斜,旋转或warped in a non-affine way

更新

现在有一篇名为Converting scanned graphs to data的维基百科文章,链接中有一堆软件。还有一些software on alternativeto.net。我想这个理论现在属于http://dsp.stackexchange.com,而软件解决方案属于http://superuser.com

7 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:3)

谷歌的“曲线识别软件”建议http://www.curveunscan.com/

答案 2 :(得分:3)

http://www.digitizeit.de/是一个数字化图表的程序。

答案 3 :(得分:2)

还有potrace相关,该页面反过来提到其他替代方案

答案 4 :(得分:1)

我不知道有任何软件能够满足您的要求,但如果只能得到几点,您可以使用某种回归来找到最适合这些点的函数。此特定图形看起来像指数函数。所以你想找一个指数回归计算器。

答案 5 :(得分:1)

我使用im2graph将图形图像转换为数据,即数字。 im2graph是免费的,适用于Linux和Windows。非常流畅,您只需要很少的努力就可以产生结果。 见http://www.im2graph.co.il

答案 6 :(得分:0)

用肉眼很难刮取数值。但是您可以使用图形数字化仪,它可以让您对离网点进行采样。互联网上有很多这样的工具。有人已经提到了 Digitizeit。但是,它不是免费的。

以下是我常用的从图表和扫描文档中提取数据点的首选工具。

  1. PlotDigitizer.com:免费(在线)和付费(离线),支持多种图表。它还支持对数刻度,就像图表中的刻度一样。
  2. WebPlotDigitizer:它也是一个非常流行的工具并且完全免费。但有时,我发现有问题和故障。
  3. Digitizeit:它是一种付费工具,没有在线版本。