2016-02-04 47 views
1

这里是情况:我使用两个显示器,次要显示图像。我想要做的是制作一个图形并设置其属性(大小,位置等),然后在该图中显示不同的图像,而不必每次重新定义大小/位置属性。记住matlab中的图形属性

这是我目前使用的代码:

hScreen = figure('Position', [screenWidth+1 (screenHeight-1080+1) 1920 1080], 'Color',[0.5 0.5 0.5]); 

myImage = imread('test.png'); 

figure(hScreen), imshow(myImage); 
set(gcf, 'position', [screenWidth+1 (screenHeight-1080+1) 1920 1080]); 

此代码的工作,但问题是,我每次显示图像时,可以看我的翻译/中的一小部分在屏幕上调整一秒钟,这在我的情况下(或在任何情况下)是不受欢迎的。如果我不使用set()作为图像,那么即使我使用了图形手柄,图像也会呈现在任意位置。

如何做到这一点,而无需重新定位/重新缩放每个图像?

回答

3

您可以停止imshow调整图形窗口大小,方法是告诉它将图像放在窗口中。如excellent documentation中所述,要做到这一点的参数被称为'InitialMagnification'

hScreen = figure('Position', [screenWidth+1 (screenHeight-1080+1) 1920 1080], 'Color',[0.5 0.5 0.5]); 

myImage = imread('test.png'); 
imshow(myImage, 'InitialMagnification','fit'); 

myImage = imread('test2.png'); 
imshow(myImage, 'InitialMagnification','fit');