Digitizing Contour Map

I am new to Image J.
I have an image of contour map of engine BSFC where i have x axis as RPM, Y axis as BMEP and the contours (z axis) are of BSFC. I want to convert this map into XYZ data.
How can i convert this image into XYZ (excell data) using Image J.
Any help will be greatly appreciated.


I’m not sure if I understand your question. What is BSFC? Whats the format of your input data (it’s an image, a table, a csv?). And do you want make a X,Y,Z image from it or a table with entries? If you want entries, what would be one entry in a excel table row?


I have this image where i have X axis as engine Speed, Y axis as engine load in bar and the contours are of the fuel consumption (called BSFC).
I want to digitize this image (meaning getting back the data which was used to generate this image) to excel data.
Can we do it ?
thanks for your help

Contour plots are lossy by nature, so at best you could only approximate the original data.

AFAIK, there is nothing built in to ImageJ, nor available in additional plugins, to do what you want. You could probably hack up a script that would reverse engineer the data from this specific image, by hardcoding various numbers, etc. However, generalizing it to work with any similar contour plot—even assuming same colors, font, etc.—would take an obnoxiously long time, since you’d have to:

  • Use OCR to parse the number labels of the contours.
  • Find each blue contour line and associate it with its parsed number.
  • Infer the continuation of blue lines where the labels “hid” them.
  • Ignore the black grid lines, extra red marks, and any other “noise”.
  • Interpolate all pixel values between the blue lines somehow.
  • Also use OCR to parse the axis labels.

Much, much, much easier is to keep the original data that generates plots like this, and reuse it as needed later.

Unfortunately its not my generated image. This is from literature and i want to use the data from it for my modelling work.
I know there is a “Figure_Calibration plugin” for an XY plot. Perhaps those who are experts can modify this plugin for the contour plots as well.
Keeping fingers crossed.

Why not write to the author of the paper in question? A good scientist will share their raw data upon request, since science is ultimately about standing on each others’ shoulders to improve the human condition.

I agree with @ctrueden in that, certainly, contacting the original author is the best option as it’s the only way to recover the original observations.

If you do not get a response from the author, are satisfied with a non-scientific approximation of the data, and only need to do this on a few images… you might have better luck with the WebPlotDigitizer browser app. It does a lot of the things @ctrueden mentioned.

For your data, as long as you are comfortable with the level of indirection (observations based on a plot based on observations) I think you could get useful results using the “Automatic mode” and using the pen tool to isolate and generate data for one contour line at a time.

AoA Dear. Did you get some help. M struck up on similar issue. Trying on ECG signals’ digitization from image of ECG.

Unfortunately NO.
I guess imagej is not meant for this kind of application.

@iltesham @latif
i have same issue anyone of you have recivd any idea till now??

Unfortunately No. I have given up on ImageJ for this. But unfortunately there is no other solution to this other than Matlab. Which most of us do not have license of.

I think it is unfair to say that MATLAB is the only solution. Did you try @hinerm’s suggestion above? Or contact the author of the paper in question? I really think that “digitizing” (i.e., reverse engineering) the contour plot is not the best approach.