get data from an image of a graph
46 ビュー (過去 30 日間)
古いコメントを表示
Dear all,
I have a JPEG image of a 2D graph. The graph is intensity vs wavelength. I need to find the peaks in this graph and record the intensity and wavelength. I already know how to find the peaks in a plot. Does anyone know how to take this image and convert it into a dataset?
Thanks in advance
1 件のコメント
Guillaume
2014 年 10 月 6 日
Finding the peaks of a dataset is easy. Digitising a picture of a graph is the hard bit. You may want to attach the image to your post so people have a better idea of what you're dealing with and can try things on their own.
回答 (3 件)
Image Analyst
2014 年 10 月 6 日
Yes - I just did that a few days ago for someone. See code and image here: http://www.mathworks.com/matlabcentral/answers/157029-getting-coordinates-from-a-picture#comment_240393
Alternatively you can check this out: http://www.mathworks.com/matlabcentral/fileexchange/36904-matlab-script-for-digitizing-a-published-graph
0 件のコメント
ashda bibi
2021 年 1 月 25 日

2 件のコメント
Image Analyst
2021 年 1 月 25 日
編集済み: Image Analyst
2021 年 1 月 25 日
Can't you ask the person who generated the graph? It looks like they used bar(), plot(), legend(), xlabel(), ylabel() and title(). Here's a start:
fprintf('Beginning to run %s.m ...\n', mfilename);
data = 25 * rand(10, 2);
bar(data);
grid on;
hold on;
averageData = mean(data, 2);
% Plot red dashed lines.
plot(averageData, 'ro--', 'LineWidth', 2);
% Plot green markers.
plot(averageData, 'g.', 'MarkerSize', 20);
for k = 1 : length(averageData)
x = k;
y = averageData(k);
caption = sprintf( '%.1f', averageData(k));
text(x, y, caption, 'FontSize', 15, 'FontWeight', 'bold')
end
xlabel('Day', 'FontSize', 16);
ylabel('Degrees C', 'FontSize', 16);
title('Temperatures for the month of April for various locations', 'FontSize', 16);
legend('Dublin', 'Kilkenny', 'Average')
fprintf('Done running %s.m.\n', mfilename);

参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!