запоминание свойств фигуры в 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() для изображений, то, несмотря на то, что я использовал дескриптор фигуры, изображение отображается в произвольной позиции.

Как мне сделать это без необходимости изменять положение/масштабировать каждое изображение?


person v_seven    schedule 04.02.2016    source источник


Ответы (1)


Вы можете запретить imshow изменять размер окна рисунка, сказав ему, чтобы изображение подошло к окну. Как упоминалось в отличной документации, параметр для этого называется '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');
person dasdingonesin    schedule 04.02.2016