0

这个话题已经讨论过了,但我没有成功。

我在 MATLAB 中有一个基本的网格图,显示在 x、y、z 轴上,我想在网格底部的地板上插入一个图像(jpg)。

4

2 回答 2

4

只是为了支持@Dan 的第一个建议(在发布时查看相同的内容),以下是如何使用强度值作为表面灰度在表面上覆盖或覆盖图像:

[X,Y,Z] = peaks(256); % surface
I = double(imread('cameraman.tif')); % image  

figure;
mesh(X, Y, Z, I); % overlay image as texture
colormap gray; hold on; 
c = 1.5*min(Z(:)); % scaling Z- location of image 
mesh(X, Y, c*ones(size(Z)), I) % underlay image as a constant-height surface

在此处输入图像描述

然而surf,设置'texturemap'(如他所建议的链接答案)是一种更巧妙的方法。

于 2012-08-30T16:47:17.977 回答
2

如果它是灰度图像,那么也许您可以使用 X 和 Y 来显示图像,surf(X,Y,Z,C)其中 X 和 Y 将是像素坐标,并且也对应于您在网格底部的地板(即使用 创建它们meshgrid),Z 将只是zeros(n),C 将是像素强度。然后让你的彩条灰度。我不是 100% 肯定我会假设你可以使用类似的东西hold on在同一个数字上绘制冲浪和网格。

在谷歌搜索我的上述建议后,我发现:如何在 MATLAB 中以 2-D 和 3-D 绘制图像 (.jpg)?. 看起来SURF是要走的路,但是您可以给它一个可以是图像的纹理贴图,而不是使用 C 参数。而且您只需要指定图像角落的 X、Y、Z 坐标,这很好。

于 2012-08-30T15:58:50.927 回答