gpt4 book ai didi

python - 从 Python 或 MATLAB 中等高线图的像素中提取数据

转载 作者:行者123 更新时间:2023-12-04 17:51:28 24 4
gpt4 key购买 nike

我有这样的等高线图:

a sample contour plot

现在,如果我没有生成等值线图的数据,而我只有图像,我如何从图像中提取每个像素的值并将其存储在数组?

MATLAB/Python 中的任何建议或示例都会有所帮助!

最佳答案

这是一个可以完成这项工作的小 Matlab 脚本(使用一些 GUI,阅读图中标题处的指南):

%// Import the data:
imdata = importdata('your_picture_file');
Gray = rgb2gray(imdata.cdata);
colorLim = [-1 1]; %// this should be set manually
%// Get the area of the data:
f = figure('Position',get(0,'ScreenSize'));
imshow(imdata.cdata,'Parent',axes('Parent',f),'InitialMagnification','fit');
%// Get the area of the data:
title('Click with the cross on the most top left area of the *data*')
da_tp_lft = round(getPosition(impoint));
title('Click with the cross on the most bottom right area of the *data*')
da_btm_rgt = round(getPosition(impoint));
dat_area = double(Gray(da_tp_lft(2):da_btm_rgt(2),da_tp_lft(1):da_btm_rgt(1)));
%// Get the area of the colorbar:
title('Click with the cross within the upper most color of the *colorbar*')
ca_tp_lft = round(getPosition(impoint));
title('Click with the cross within the bottom most color of the *colorbar*')
ca_btm_rgt = round(getPosition(impoint));
cmap_area = double(Gray(ca_tp_lft(2):ca_btm_rgt(2),ca_tp_lft(1):ca_btm_rgt(1)));
close(f)
%// Convert the colormap to data:
data = dat_area./max(cmap_area(:)).*range(colorLim)-abs(min(colorLim));

现在,data 就是您要查找的内容。

这是使用问题中的图形的输出说明:

enter image description here

插图代码:

figure('Position',[100 200 1200 400]);
subplot 121
imshow(imdata.cdata)
hold on
plot(da_tp_lft(1),da_tp_lft(2),'m+','MarkerSize',7,'LineWidth',2)
plot(da_btm_rgt(1),da_btm_rgt(2),'m+','MarkerSize',7,'LineWidth',2)
plot(ca_tp_lft(1),ca_tp_lft(2),'r+','MarkerSize',7,'LineWidth',2)
plot(ca_btm_rgt(1),ca_btm_rgt(2),'r+','MarkerSize',7,'LineWidth',2)
hold off
title('The original image')

subplot 122
surf(data)
shading interp
view(50,40)
colorbar
caxis([-1 1])
title('Illusration of the data')
axis tight

关于python - 从 Python 或 MATLAB 中等高线图的像素中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44434576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com