2016-02-04 49 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');