このトピックは議論されましたが、私は失敗しました。
MATLABでx、y、z軸に表示する基本的なメッシュプロットがあり、グリッドの下部の床に画像(jpg)を挿入したいと思います。
@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'
(彼が示唆するようにリンクされた回答)を使用すると、より洗練されたアプローチになります。
グレースケール画像の場合、おそらくsurf(X,Y,Z,C)
X と Y がピクセル座標であり、グリッドの下部にある床に対応する場所を使用して画像を表示できます (つまり、 で作成しますmeshgrid
)。Z はそのままでzeros(n)
、C はピクセル強度。次に、カラー バーをグレースケールにします。hold on
サーフとメッシュを同じ図にプロットするようなものを使用できると思うかどうかは 100% わかりません。
上記の提案をグーグルで検索した後、次のことがわかりました。. それが進むべき道のように見えSURF
ますが、C パラメータを使用する代わりに、画像にすることができるテクスチャ マップを与えることができます。また、画像のコーナーの X、Y、Z 座標を指定するだけでよいので便利です。