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!