2011-06-29 8 views
6

私はヒートマップ(言い換えれば)と0から1までの値の2Dマトリックスの下に置くイメージ(png)を持っています。したがって、スポットの強度は、行列の値がどれだけ大きいかによって決まります。イメージオーバーレイとマトリックス

私はimshow(行列)を使うことができますが、それは完全に下の画像を描画します。おそらく、おそらく、マトリックス値でピクセルを描画しないでください< .05または何か他の方法でこの作品を作るのですか?

答えて

7

オーバーレイカラー画像の上にバイナリヒートマップ:

%# some image 
I = im2double(imread('peppers.png')); 

%# I create here a random mask (gaussian centered in middle of image) 
[r,c,~] = size(I); 
[X Y] = meshgrid(1:r,1:c); 
Z = mvnpdf([X(:) Y(:)], [r c]./2, diag(15.*[r c])); 
Z = (Z-min(Z(:)))./range(Z(:)); 
Z = reshape(Z',[c r])'; 

%# show image and mask separately 
subplot(121), imshow(I) 
subplot(122), imshow(Z) 

%# show overlayed images 
figure, imshow(I), hold on 
hImg = imshow(Z); set(hImg, 'AlphaData', 0.6); 

%# also we can specify a colormap 
colormap hsv 

enter image description here enter image description here enter image description here

+0

あなたが ' 'AlphaData''と2-Dマトリックスを使用している場合、その後、あなたはせずに、選択的な場所でカラーマップを適用することができます画像内の他の領域に影響を与えます。 –

+1

@ ParagS.Chandakkar:上記の例では、アルファマップとしてマスク行列 'Z'を使用することができます:' h = imshow(I); set(h、 'AlphaData'、Z) '(画像が透明になり、背後に灰色の背景が表示されます) – Amro

1

ロードされたpngは3次元マトリックスになります。 2dバイナリ行列をrepmatで3dのものに変換することができます。次に、imresizeを持つpngと同じサイズになるようにバイナリ行列のサイズを変更します。最後に、imshow(alpha(myPng)+(1-alpha)*(myBinaryMat))のようにブレンドされた2つの行列を表示することができます。ここで、alphaは0と1の間のブレンドパラメータです。

関連する問題