テスト参加者が一連の画像を表示し、各画像の後に画像の評価で応答する実験のために、Matlab で GUI をプログラミングしています。
ウィンドウを常に最大化しておきたい。画像が数秒間表示されてから削除され、評価用のスライダーがいくつか表示されます。次に、スライダーが非表示になり、新しい画像が表示されます...
私がこれまでに得たものは、最大化されたままではなく、imshow または image コマンドを使用して画像を読み込んで表示するまで、最大化された Figure ウィンドウで問題なく開始されます。次に Figure ウィンドウを再度最大化すると、最初に最大化され、次にサイズ変更され、再度最大化されたウィンドウ フレームから顕著なちらつきが発生します - 私が避けたいちらつき。
ウィンドウを最大化したまま、画像を 1:1 の比率で表示するにはどうすればよいですか (最大化されたウィンドウに合わせて拡大縮小またはサイズ変更されません)。
PsychToolbox のことは知っていますが、スライダーを作成するためのコマンド (評価に使用するコマンド) がないようです。Matlab File Exchange の windowAPI も調べましたが、まだ解決策が見つかりません。
以下は、私が今持っているものの例です(Windows 7 64ビットでMatlab R2013aを使用):
screenSize = get(0,'screensize');
screenWidth = screenSize(3);
screenHeight = screenSize(4);
% Create figure window, keeping it invisible while adding UI controls, etc.
hFig = figure('Name','APP',...
'Numbertitle','off',...
'Position', [0 0 screenWidth screenHeight],...
'WindowStyle','modal',...
'Color',[0.5 0.5 0.5],...
'Toolbar','none',...
'Visible','off');
% Make the figure window visible
set(hFig,'Visible','on');
% Maximize the figure window, using WindowAPI
WindowAPI(hFig, 'Position', 'work');
% Pause (in the full version of this script, this would instead be
% a part where some UI elements are shown and later hidden...
pause(1.0);
% Read image file
img = imread('someImage.png');
% Create handle for imshow, and hiding the image for now.
% This is where Matlab decides to modify the figure window,
% so it fits the image rather than staying maximized.
hImshow = imshow(img);
set(hImshow,'Visible','off');
% Show the image
set(hImshow,'Visible','on');
ありがとう、クリスチャン