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

グレースケール画像の場合、おそらくsurf(X,Y,Z,C)X と Y がピクセル座標であり、グリッドの下部にある床に対応する場所を使用して画像を表示できます (つまり、 で作成しますmeshgrid)。Z はそのままでzeros(n)、C はピクセル強度。次に、カラー バーをグレースケールにします。hold onサーフとメッシュを同じ図にプロットするようなものを使用できると思うかどうかは 100% わかりません。

上記の提案をグーグルで検索した後、次のことがわかりました. それが進むべき道のように見えSURFますが、C パラメータを使用する代わりに、画像にすることができるテクスチャ マップを与えることができます。また、画像のコーナーの X、Y、Z 座標を指定するだけでよいので便利です。

于 2012-08-30T15:58:50.927 に答える