2017-02-06 10 views
1

私は少し赤い点を描く必要がある800x800のダブルマトリックスを持っています。私はmat2gray(配列、[0,1])で画像に変換しようとしましたが、matlabは画面に描画する前に67%スケールします。つまり、plot(x、y、 'r')を使って小さな点を描くことはできません。数字が画面に対して大きすぎますか?

画像を重ねて見て、見えないようにしてみましたが、どうやってこれを行うのか分かりません。簡単な方法が必要です。何か案は?ここで

は私の現在のコードです:

%map is an 800x800 matrix of doubles 
img = mat2gray(map,[0,1]); 

hold on; 
plot(point.x, point.y,'r.','MarkerSize',10); 
hold off 

img = imresize(img,0.66); %so that matlab doesn't yell at me 
set(figHandle, 'visible','on'); 
imshow(img); 

答えて

3

ウィンドウサイズよりも大きな画像をプロットするとき、MATLABができます警告

警告:画像が画面に収まるには大きすぎます。 67%で表示

あなたの配列や画像のサイズが変わるわけではありません。つまり、通常のサイズでプロットし、その%をズームアウトします。あなたの配列はまだ800x800です。上にプロットしたい場合は、同じx、y座標が適用されます。あなたが見ることができるように例えば

imshow(rand(1000)) 
% Warning: Image is too big to fit on screen; displaying at 67% 
% In imuitools/private/initSize at 71 
% In imshow at 282 
hold on 
plot(500,500,'r.','MarkerSize',100) 

は予想通り、彼らは赤い点、画像の真ん中にある、この

enter image description here

を作成します。画像のサイズを変更する必要はありません

また、あなたの場合は、最初に点とそれから画像をプロットすると、画像は点の上に表示され、それらを覆い、最初に画像をプロットしてからポイント。

+0

これは機能しました!しかし、警告メッセージが表示されないようにしたいと思います。 imshowを使用する前にimresizeを使用すると、ポイントを歪ませることなく画像をリサイズできますか? – DEED

+1

Matlabは画像のサイズを変更しません。ズームアウトのみ表示されます。あなたの画像マトリックスは同じままです。この警告は無視しても問題ありません。周囲のコードのパフォーマンスには影響しません。警告が表示されないようにすることができますが、後で実際の問題を隠す可能性があるため、警告を強く推奨します。一方、 'imresize'はデータを変更するので、ポイントの座標を一致させるように変更する必要があります –

関連する問題