画图对于屏幕来说太大了?

时间:2017-02-06 00:49:02

标签: matlab plot matlab-figure

我有一个800x800双矩阵,我需要绘制小红点。我尝试将其转换为带有mat2gray(数组,[0,1])的图像,但是在绘制到我的屏幕之前,matlab将它缩放了67%。这意味着我无法使用绘图(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);

1 个答案:

答案 0 :(得分: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

如您所见,正如预期的那样,红点位于图像的中间。您不需要调整图片大小

同样在你的情况下,如果你首先绘制点,然后是图像,图像将显示在点上方,覆盖它们,我建议首先绘制图像,然后绘制点。