请问matlab如何从已知坐标和灰度值显示出三维或二维灰度图

stranger1999 2007-11-12 10:35:43
请问matlab如何从已知坐标和灰度值显示出三维或二维灰度图

即我的三维坐标或二维坐标是矩阵形势,4×n的矩阵,每列的4个数值分别是x,y,z和灰度值c,如何显示出来呢

第一次发帖求助,100分全送了
...全文
2986 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
taotaoshuai 2009-09-25
  • 打赏
  • 举报
回复
发个帖子
taotaoshuai 2009-09-25
  • 打赏
  • 举报
回复
发个帖子
stranger1999 2007-11-17
  • 打赏
  • 举报
回复 3
感谢楼上的,不过我试了,好像只能显示出最后一个点

其实我已经找到实现这个功能的函数来,原来非常简单,只要用scatter3就行,二维的用scatter

一个简单的函数,困扰了我很久 ^_^
liuxqsmile 2007-11-16
  • 打赏
  • 举报
回复
可以每一个点单独绘:
figure,
hold on,
n = length(c);
for ti = 1:n
colors = c(ti)/255*[1 1 1];
plot3(x(ti),y(ti),z(ti),'.','Color',colors,'MarkerSize',6);
end

每个点是独立的,在一个三维的空间里,看起来很混乱,我自己觉得这样的图没多大意义,可能也不是你想要的效果:)。
stranger1999 2007-11-13
  • 打赏
  • 举报
回复
谢谢楼上的回答,但是我的数据其实X,Y,Z,C并不是矩阵,所以没法用surf和mesh,我尝试用X,Y排列后meshgrid,但是out of memory

我把我的思想表达的清晰一点吧,举例来说,我有4个三维空间点,他们的坐标是(12.2 1.2 14),(25.123 3 0),(0.36 1.2 3.2),(3.468 56 0),这4个点的灰度值分别是125 65 32 96

我的数据如下所示

>> x=[12.2 25.123 0.36 3.468]';
>> y=[1.2 3 1.2 56]';
>> z=[14 0 3.2 0]';
>> c=[125 65 32 96]';

显然我想画出三维空间的点,没法用mesh和surf,不知如何才能达到我想要的效果,谢谢各位
liuxqsmile 2007-11-13
  • 打赏
  • 举报
回复
如果是二维的,可以用image或(imagesc),image(x,y,c)。c为二维矩阵,对应每一点的颜色值,x和y为向量,表示二维矩阵的对应坐标。这样画出来的是彩色图,在figure中打开“Show Plot Tools”,在colormap属性中选择颜色。
三维可以用surf命令,用法是类似的。

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧