【问题标题】:Image and Mesh in Same Plot in MATLABMATLAB 中同一图中的图像和网格
【发布时间】:2012-08-25 06:19:14
【问题描述】:

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

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

【问题讨论】:

    标签: image matlab plot mesh


    【解决方案1】:

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

    在谷歌搜索我的上述建议后,我发现了这个:How can I plot an image (.jpg) in MATLAB in both 2-D and 3-D?。看起来SURF 是要走的路,但是您可以给它一个可以是图像的纹理贴图,而不是使用 C 参数。而且你只需要指定图像角落的 X,Y,Z 坐标就可以了。

    【讨论】:

    • 非常感谢。我开始实现我几天来的情节。
    【解决方案2】:

    只是为了支持@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' (链接答案,正如他所建议的那样)是一种更巧妙的方法。

    【讨论】:

    • 感谢您的帮助。我已经在这这么久了。出于某种原因,当它是数据可视化时,很难找到该领域的专家。
    • 因为我又遇到了这个问题。作为记录,您还可以使用warp 进行图像叠加,即上面的示例warp(X, Y, Z, I./255)
    猜你喜欢
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多