私自身と関連トピックで解決策を見つけることができなかったので、誰かが次の問題を解決する方法のヒントを教えてくれるかどうか尋ねたいと思います:
3D プロットでは、次の matlab コード フラグメントのように、関数 Contourf の結果をグラフィックス ハンドルに割り当てることにより、2D 投影を (塗りつぶされた) 等高線図として表示できます。
[~,h2]=contourf(w1,w3,sz,level_list2,'LineWidth',1);
h2=findobj(h2,'type','patch');
for j=1:length(h2),
zd=w5(1).*ones(size(get(h2(j),'XData')));
set(h2(j),'ZData',zd);
end
set(h2,'FaceLighting','none');
関数の引数w1
とは、3D プロットの x 軸と y 軸を定義し、(x,y) 平面への 3 次元データ セットの投影を含みます。w3
contourf
sz
ただし、2D 投影に特定の色エンコードを使用したいので、(塗りつぶされた) 等高線図は適切な解決策ではないようです。むしろ、2D 投影は、目的のカラー エンコーディングの手順を適用した後、RGB イメージとして与えられます。
mapshow
したがって、この場合により適切と思われる関数を使用しようとしました。次に、対応するコードフラグメントが読み取ります
[~,h2]=mapshow(w1,w3,szIndexedImage,hsv);
h2=findobj(h2,'type','patch');
for j=1:length(h2),
zd=w5(1).*ones(size(get(h2(j),'XData')));
set(h2(j),'ZData',zd);
end
set(h2,'FaceLighting','none');
ここで、インデックス付き画像 szIndexedImage は、次の方法で RGB 画像 szRGBimage から取得されます。
szIndexedImage=rgb2ind(szRGBimage,hsv);
とhsv
HSV カラー マップです。
プログラムを実行するとエラー メッセージが表示される
Error in `mapshow` (line 214)
error(nargchk(1,Inf,nargin,'struct'))
Output argument "varargout" (and maybe others) not assigned during call to
"/usr/local/MATLAB/R2012a/toolbox/map/map/mapshow.m>mapshow".
この問題を解決するのに役立つアイデアをありがとう。
よろしくお願いします、
ヨアヒム