MATLAB-将高度图添加到带有纹理的冲浪图

时间:2018-07-04 08:46:16

标签: matlab textures surf

我正在尝试使用以下代码绘制带有纹理的3D冲浪以及相应的2D高度图:

close all
clear all

heightData = 'Test_RefData2';

    % Import data
fid = fopen([heightData '.dat']);
Coords = textscan(fid,'%f\t%f\t%f'); % [nm]

x = Coords{1}/1000; % [µm]
y = Coords{2}/1000; 
y = y + max(y*(-1));% [µm]
z = Coords{3}/1000; % [µm]

    % Perform interpolation on 3D data
F = scatteredInterpolant(x,y,z);

xv = linspace(min(x), max(x), 1024);
yv = linspace(min(y), max(y), 768);
[X,Y] = meshgrid(xv, yv);
Z = F(X,Y); 
figure()
s = surf(X, Y, Z, 'edgecolor', 'none');

hold on
h = pcolor(X,Y,Z); shading interp;
set(h,'ZData',-5 + 0*Z);
colormap('gray');

从上图中可以看出,一切都很好,直到我使用

添加纹理为止
texture = imread(['R:\Test.tif']);
textureInv = flip(texture,1);
set(s,'CData',textureInv,'FaceColor','texturemap'); 

有人可以帮我解释一下为什么添加纹理将高度图的颜色更改为黑色吗? 我进行搜索,发现一些威胁正在讨论类似的问题,但是无法将解决方案应用于我的问题。

没有纹理

enter image description here

具有纹理

enter image description here

0 个答案:

没有答案