2

簡単な免責事項: 私は独学のプログラマーであり、これが公式に初めてのスタック オーバーフローの投稿です。

私は 250X250 の確率分布 (pdf) マトリックス (0 から 1 の範囲の値) を持っています。これをトゥルーカラー (250x250x3) マトリックスに変換したいので、一連のマトリックスを保存してムービーとして表示したり、保存したりできます。 RGB画像として。私の質問は 2 つあります。

まず、私が使用する場合:

cmp=jet;
img=ind2rgb(pdf,cmp);

imagesc(pdf) は適切なヒート マップ図を返しますが、 img は完全に青色の画像になり、img(:,:,3)=(some value<1)(img(:,:,1:2)==0. ind2rgb()誰かが(スケーリング?) 同じ方法ではない理由imagesc()と、それをどのように修正するかを説明できれば、本当に感謝しています。

さらに:

これらのインデックス付きの値を matlab Figure ウィンドウに表示するための便利な関数を知っcontour()ていますが、matlab Figure をFigure 軸なしのトゥルーカラー イメージとして保存する方法はありますか?imagesc()

これらの質問のいずれかまたは両方に対する回答をいただければ幸いです。

コリン

4

1 に答える 1

2

ind2rg は画像をスケーリングせず、カラーマップにマップするだけです。画像を自分でスケーリングする必要があります。また、カラーマップのサイズを指定する必要があります。次に例を示します。

pdf = rand(100,100); % fake data
pdfScaled = uint8(256*pdf); % scale data
cmp = jet(256); % 256 element colormap
img = ind2rgb(pdfScaled,cmp);

subplot(2,1,1)
imagesc(pdf)
title('indexed image')
subplot(2,1,2)
image(img) 
title('rgb image')

結果のプロットは次のようになります。

インデックス付き画像と RGB 画像

2番目の質問については、軸に表示されている画像を保存するためgetframeimwrite使用できます。例えば:

figure
imagesc(spiral(10))
frame = getframe();
imwrite(frame.cdata, 'frame.png')
于 2013-05-14T22:49:37.827 に答える