知道x,y,z坐标,和强度值,怎么用Matlab画出图像?
按照我的理解,应该有两种画法。
首先是stack contour plot (我实在不知道中文怎么翻译,你搜索一下应该立刻能知道是什么)
这样的做法,你产生的图像应该是一层一层的,每一层都是contour plot。
做法是这样的,假设你的matlab是2012a之后的版本,并且假设你的强度值是v,v是一个3d 的box,box是一个3阶array:
figure();
hold on;
[~, h] = contour(x, y, v(:, :, 1));
h.ContourZLevel(z(1));
就像这样一层一层的循环下去。关键是设置h.ContourZLevel(),这个可以让contour在z轴平移。形成一层一层的contour。然后每层的contour还可以设置透明度。
这是第一种作图的方法。
第二种做法是使用isosurface。
这个做法相对简单,使用单一指令:
isosurface(x, y, z, v, value)
直接可以出图。这个value值的选取就是你想要z值中的其中一个值做一个平面。但是值得注意的是,x,y,z,v都必须是volumatric 数据,都是3阶矩阵。出图的话,应该是这样的。
这是第二种做法。
两边的contour是后来加上的,这个不是很重要,关键是中间的那个volume。
其实matlab出这种图,并不是非常理想的。这时候应该使用的工具应该是python的mayavi。