How to extract a time series from an image?

Hi everybody,

I’d like to obtain a time series from the image of a signal.

I have a really old paper that includes a Figure from where I need to extract and analyse a 10[s] epoch that became gold standard.

So I need something like:

using ThePackageINeed

myimage=read("./image_from_old_paper.png")

a=ThePackageINeed.superfunction(myimage)
a|>typeof|>println


Vector


Does anybody know how to do that?

Thank you

I don’t know whether there is a Julia package, but I often use WebPlotDigitizer - Extract data from plots, images, and maps for digitizing plots. It’s got a weird learning curve, but should be straightforward for your case.

2 Likes

Thanks for the tip @affans
It looks really good.

I guess it would be quiet useful to have something like that in Julia.

The problem is there is a lot of manual adjustments that are usually required when digitizing it like that. It would require some serious fancy algorithms to automatically detect axis, points and recreate the original dataset.

I understand what you mean.

Maybe some sort of Julia workaround??
To exploit a relevant package?? Images.jl?
Metapackages?

I am just brainstorming, I do not really know how to solve it.

I used a similar tool once, when I needed to extract some loudspeaker frequency characteristics out of a datasheet. I had to manually define the axis limits and to color pick the graph for extraction.
I would follow a similar semi-automatic method in Julia.
Click on the axis ticks/limits, make a popup appear to enter the values. Then process the image(probably binarize it), isolate the plot line(maybe guide it a bit with some clicks) and then map the pixel coordinates on the limits from above.

I’m not aware of such a high level function in Julia.

The click on image/popup can be achieved with GtkReactive and the image processing with the suite from Images(ImageTransformations &co)