4
$\begingroup$

Are there any free tools or libraries that can understand a plot image file automatically? Things like type detection (line, bar, scatter), as well as label and axis scaling detection.

In the tools I have found so far, one has to do manual configuration. I'm asking if it is possible in our AI driven world to let a machine do this.

If there are none, I will start a project for myself as it seems like a challenging but instructive AI task. Is this effort doomed from start? Are there any helpful libraries in C++ or Java and theoretical algorithms one could consider?

Thanks,
Tomas

$\endgroup$
3
$\begingroup$

In the general sense this is most definitely a non-trivial problem and any full featured solution will require a considerable degree of work.

Success will probably be dependent on how much you constrain your problem. Monochrome will be easier than color. Limited font, font size, line and marker styles will help.

The more constrained, the more chance of success.

For line detection, such as axes, you might want to consider the Hough and Radon transforms.

Here are some stackexchange questions covering some of the topics you might want to address, sadly no bargraphs, some have a manual component which you might think how to automate. They are a good starting point to review some of the difficulties involved in the problem.

Selecting a curve: https://mathematica.stackexchange.com/questions/44355/how-to-make-a-curve-selectable-from-a-scaned-image-and-convert-it-to-a-list-of-c

Datapoints and Axes: https://mathematica.stackexchange.com/questions/1524/recovering-data-points-from-an-image

Scatter: https://mathematica.stackexchange.com/questions/26356/how-do-i-find-the-coordinates-of-points-in-this-image

Datapoints: https://mathematica.stackexchange.com/questions/3831/how-can-i-extract-data-points-from-a-black-and-white-image

https://mathematica.stackexchange.com/questions/14444/obtain-data-points-from-a-graph-on-an-image-without-axes

| improve this answer | |
$\endgroup$
1
$\begingroup$

as @image_doctor mentioned, this is clearly a non-trivial problem, but if you want a bit of help extracting numerical data from existing graphs, WebPlotDigitizer might be of assistance.

Perhaps investigating their methods via their source may be fruitful for you.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.