1

輪郭プロットの内容を画像マトリックスとして取得する方法はありますか?図全体の軸、ラベル、および空きスペースではなく、コンテンツのみをラスタライズしたい。

私の目標は、透明な色付きの等高線図をグレースケール画像にオーバーレイすることですが、MATLABには図ごとに1つのカラーマップしかないため、別の方法はわかりません。

4

2 に答える 2

3

試してみgetframeframe2im

frame2imドキュメントからの例:

Create and capture an image using getframe and frame2im:

peaks                      %Make figure
f = getframe;              %Capture screen shot
[im,map] = frame2im(f);    %Return associated image data 
if isempty(map)            %Truecolor system
  rgb = im;
else                       %Indexed system
  rgb = ind2rgb(im,map);   %Convert image data
end
于 2012-04-04T09:48:18.243 に答える
1

質問に対する直接の答えではありませんが、これがあなたがあなたの目標を達成できると私が思う方法です:

%# load in grayscale image
gray_im =  rgb2gray(imread('peppers.png'));

%# converting n x m grey image to n x m x 3 rgb gray image
rgb_gray_im = cat( 3, gray_im, gray_im, gray_im );

%# displaying this image
imshow( rgb_gray_im );

%# plotting contourf on top with arbitrary colourmap
hold on
h = axes('position', [0.5, 0.5, 0.2, 0.2]);
z = peaks;
contourf(h, z, [min(z(:)), -6 : 8]);

結果は次のようになります。

ここに画像の説明を入力してください

図のカラーマップは、contourfプロットに使用されています。背景画像はカラーマップに依存せず、代わりにトゥルーカラーで表示されます。つまり、各ピクセルはrgb_gray_imで定義されたRGB値として表示されます。

MATLABカラーマップの制限を回避する方法は他にもあります。たとえば、このブログ投稿またはこれらの回答を参照してください。

于 2012-04-04T09:49:21.673 に答える