记住matlab中的图形属性
remembering figure properties in matlab
情况是这样的:我正在使用两个显示器,第二个用于显示图像。我想做的是制作一个图形并设置其属性(大小、位置等),然后在该图形中显示不同的图像,而不必每次都重新定义 size/position 属性。
这是我目前使用的代码:
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]);
这段代码有效,但问题是每次我显示图像时,我都能在几分之一秒内在屏幕上看到 translation/resizing,这在我的情况下(或在任何案件)。如果我不对图像使用 set(),那么即使我使用图形句柄,图像也会在任意位置呈现。
如何制作这个而不需要 reposition/rescale 每张图片?
您可以阻止 imshow
调整图形 window 的大小,方法是告诉它使图像适合 window。如 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');
情况是这样的:我正在使用两个显示器,第二个用于显示图像。我想做的是制作一个图形并设置其属性(大小、位置等),然后在该图形中显示不同的图像,而不必每次都重新定义 size/position 属性。
这是我目前使用的代码:
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]);
这段代码有效,但问题是每次我显示图像时,我都能在几分之一秒内在屏幕上看到 translation/resizing,这在我的情况下(或在任何案件)。如果我不对图像使用 set(),那么即使我使用图形句柄,图像也会在任意位置呈现。
如何制作这个而不需要 reposition/rescale 每张图片?
您可以阻止 imshow
调整图形 window 的大小,方法是告诉它使图像适合 window。如 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');