Generate data from a image plot with colour code as reference.

5 views (last 30 days)
Hello, I am a naive user of Matlab, Please find the image attached. The image represents a Cp profile over a body. I would like to generate the data from this image. The grey line is my area of interest. My desire output is to generate Cp value (taken from the colour bar)at very point of that line with reference to y-axis.
  3 Comments
Kushal Kumar
Kushal Kumar on 25 Oct 2018
Edited: Kushal Kumar on 25 Oct 2018
Jonas, Thank you for replying,
May I know how can I specify the line as user input over an image like this? the image kept here is just an reference plot so that I can understand the concept and way to generate the data.
I have different set of the data for which I need use similar procedure to obtain the values.
jonas
jonas on 25 Oct 2018
Okay, I'll just make an answer explaining how I'd approach this.

Sign in to comment.

Accepted Answer

jonas
jonas on 25 Oct 2018
I'd approach this by the following steps.
load image with axes and everything:
I = imread('FileName.png');
imshow(I)
Get start and end-points of the line as user input
[xi,yi] = getpts
y = min(yi):max(yi);
x = xi(1).*ones(size(y))
Get colors of each point
z = I(y,x,:)
Now you have the colors stored in z, you need to connect these colors to the colormap. Since the colorbar is defined in discrete steps, I would repeat the above procedure for the colorbar, asking the user to input a single coordinate for each color. Then you will have a type of conversion sheet so that you can connnect the colors of your line to the values from the colorbar. That's about it.
  1 Comment
Mahdi Bashiri
Mahdi Bashiri on 26 May 2021
Could you help me how can I get the data of a generated plot by Matlab without saving the file itself?
So, I need to use imread command. As an example imread(sin(x))?
Thanks for the help in advance.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!