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

6 Ansichten (letzte 30 Tage)
ssss
ssss am 20 Aug. 2022
Kommentiert: ssss am 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) 内
どうぞよろしくお願いします.

Antworten (1)

Hernia Baby
Hernia Baby am 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 Kommentar
ssss
ssss am 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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu グラフィックス オブジェクトのプロパティ finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!