ディスプレイ全画面で​1ピクセル単位の描画​を行いたい

6 views (last 30 days)
ssss
ssss on 20 Aug 2022
Commented: ssss on 21 Aug 2022
ディスプレイ全画面の輝度値を指定したいのですが,一部の領域しか指定できません.
スクリーンサイズを取得し,そのサイズ分のimageを表示させようとしたのですができませんでした.
なので,全画面を輝度値で指定する方法を教えていただきたいです.
実際のプログラムは以下になります.
function drawFigure
%ディスプレイサイズ取得
dhisplay = groot;
x = dhisplay.ScreenSize();
width = x(3);
height = x(4);
%ディスプレイ全画面分のサイズを輝度値0(黒)で取得
image = zeros(height,width);
close;
f = figure;
%メニューバーを無くして全画面描画領域に変更(消しても描画領域にならない?)
f.MenuBar = 'none';
%背景を白にすることで描画領域を確認(目視)
f.Color = [1 1 1];
%全画面表示
f.WindowState = 'fullscreen';
%作成した画像を表示
imshow(image);
%自動でサイズ補正されるので実際のピクセル数で指定したつもり
truesize(f,[height,width]);
end
このプログラムを実行すると,以下のエラーが出ます.
% 警告: イメージが大きすぎて画面に収まりません。56% の倍率で表示します。
% > truesize>Resize1 (行 184) 内
% truesize (行 50) 内
% drawFigure (行 23) 内
どうぞよろしくお願いします.

Answers (1)

Hernia Baby
Hernia Baby on 20 Aug 2022
以下の部分を参考にしました
function drawFigure
%ディスプレイサイズ取得
dhisplay = groot;
x = dhisplay.ScreenSize();
width = x(3);
height = x(4);
%ディスプレイ全画面分のサイズを輝度値0(黒)で取得
image = zeros(height,width);
close;
% 図示
imshow(image);
% ハンドルの取得
hFig = gcf;
hAx = gca;
% Figureをフルスクリーンにする
set(hFig,'units','normalized','outerposition',[0 0 1 1]);
% axesをフルスクリーンにする
set(hAx,'Unit','normalized','Position',[0 0 1 1]);
% ツールバーを隠す
set(hFig,'menubar','none')
% タイトルを消す
set(hFig,'NumberTitle','off');
% 背景は白
set(hFig,'Color','w')
% フルスクリーン
set (hFig,'WindowState','fullscreen')
end
  1 Comment
ssss
ssss on 21 Aug 2022
ありがとうございます.
無事全画面描写できました.
指定する座標軸の原点と長さを指定していなかったこと,
タイトルを消さないことでfigureのouterpositionが内側に来ていたことが
原因だったようです.
お陰様で作成できたプログラムは以下になります.
function drawFigure
%ディスプレイサイズ取得
dhisplay = groot;
x = dhisplay.ScreenSize();
width = x(3);
height = x(4);
%ディスプレイ全画面分のサイズを輝度値0で取得
image = zeros(height,width);
close;
f = figure;
%メニューバーの消去
f.MenuBar = 'none';
%背景を白にすることでどこが描画されているか確認
f.Color = [1 1 1];
%全画面表示
f.WindowState = 'fullscreen';
%%%%%%%%%%%%%%%%%%%%%%%追加%%%%%%%%%%%%%%%%%%%%%%%
%タイトルの消去
f.NumberTitle = 'off';
%figureの外枠位置指定
f.Units = 'normalized';
f.OuterPosition = [0 0 1 1];
%座標軸の設定
ax = axes;
ax.Position = [0 0 1 1];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%作成した画像を表示
imshow(image);
end

Sign in to comment.

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!