matlab利用三列数据生成一个二维图像,前两个设为坐标x,y第三个数据表示图像颜色强度

数据如上图所示,三列前两列表示坐标,第三列表示颜色强度生成图如这个图这样。求高手解答下坐标点是离散的,而且由坐标点生成的像素点与颜色必须与坐标点含量值一一对应... 数据如上图所示,三列 前两列表示坐标,第三列表示颜色强度
生成图如这个图这样。求高手解答下
坐标点是离散的,而且由坐标点生成的像素点与颜色必须与坐标点含量值一一对应
展开
 我来答
dukinkin
2014-06-17 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:922万
展开全部
首先将三列数据放到三个列向量X,Y,Z中
X,Y就是第一、二列数据,是坐标,Z表示强度,用颜色表示

把这样的数据图表示成二维的图像有两种办法
第一种,把不规则的散点数据插值计算到规则的二维网格,再画图
XI=linspace(min(X),max(X),m); %根据需要将X划分为m分
YI=linspace(min(Y),max(Y),n); %根据需要将Y划分为n分
ZI=griddata(X,Y,Z,XI,YI.'); %最后ZI是个nxm的矩阵
imagesc(XI,YI,ZI);colorbar; %使用imagesc将矩阵画成图像
这种办法,由于数据是规则的网格,所以图像比较漂亮
而得到的二维规则矩阵,很容易保存成图像
但是数据是插值出来的,所以失去原来散点的信息

第二种,将散点数据用划分为平面内多个互相连接三角形,再画图
tri=delaunay(X,Y); %将散点划分为平面三角形网格
patch('Faces',tri,'Vertices',[X,Y],'FaceVertexCData',Z,...
'FaceColor','interp','EdgeColor','none');
colorbar;
这种办法得到的图像完全保留散点的信息
还可以将最后的边颜色设置为黑色'EdgeColor','k'
这是显示三角形网格的划分
在原来散点的位置,X,Y,Z都是一一对应的
所以坐标点生成的像素点与颜色与坐标点含量值肯定一一对应

而其它地方的颜色是由这些值插值而得
这样图像边缘可能不规则
更多追问追答
追问

可否解释一些patch('Faces',tri,'Vertices',[X,Y],'FaceVertexCData',Z,...
'FaceColor','interp','EdgeColor','none');
colorbar;

这句语句什么意思?

根据你的语句我得到了图像,但发现图像颜色差别不是很明显,我的Z数据大部分为3左右,只有少数值较大最大值为45

非常感谢

追答
patch就是给空间区域填充颜色
特别的可以用于三角网格表示的多个三角形的颜色填充

首先用
tri=delaunay(X,Y);
将撒播点数据X,Y划分为三角形网格
得到的tri是个nx3的矩阵,
n是划分三角形的个数
每一行三个数是十三个下标,表示三角形三个角分别是X,Y数据中的哪个
所以tri就相当记录了每个三角形的信息
而X,Y记录了这些三角形顶点的信息

其实得到tri后加上X,Y数据
我们很容易用tirplot(tri,X,Y)画出划分后的网格

加上Z数据,我们还可用

trimesh(tri,X,Y,Z)或trisurf(tri,X,Y,Z)画出三维的曲面图

现在你只需要画二维的图像,而Z用颜色表示,所以用patch比较合适

'Faces',tri,'Vertices',[X,Y] 就指定了三角网格的面和顶点
'FaceVertexCData',Z,'FaceColor','interp', 指定了顶点的颜色是根据Z数据确定,
而三角形面本身是没有数据的,所以用‘interp’就是插值来决定颜色
'EdgeColor','none'; 边指定三角形边的颜色,这里不要所以用‘none’

颜色对比不明显,是你的数据分布不均匀的结果
你可以在画完图之后,在菜单中选取Edit的Colormap选项
就会弹出一个Colormap Editor的对话框
拖动其中颜色条的标签位置就可以改变颜色
根据自己的需要调整到最好看就可以了
eryoumuxinwei
2014-06-17 · TA获得超过104个赞
知道答主
回答量:145
采纳率:0%
帮助的人:72.1万
展开全部
修改一下你的颜色映射试试。就是colormap函数。colormap函数是可以调整颜色映射的范围的,你可以查一下matlab中这个函数的用法。用一个help colormap就行啦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式