Figure automatically scales by 2

2 Ansichten (letzte 30 Tage)
xiaojuezi
xiaojuezi am 6 Apr. 2020
Kommentiert: xiaojuezi am 11 Apr. 2020
Hi, I set my figure as below:
figure(1)
set(gcf,'units','pixels','position',[0,0,512,512]);
However, the popped figure window has resolution 1024x1024. When I try to get the result as a matrix:
F = getframe (gcf,[0,0,512,512]);
[img, ~] = frame2im (F);
I would like to get img with resolution 512x512x3, but I get its value as 1024x1024x3.
Is there anyway to solve this problem?
  4 Kommentare
Walter Roberson
Walter Roberson am 7 Apr. 2020
For
  • Windows® systems in which the display dots-per-inch (DPI) value is set higher than 96
  • Macintosh systems with Apple Retina displays
When you set the Units property of a graphics or UI object to 'pixels', the size of each pixel is now device-independent on Windows and Macintosh systems:
  • On Windows systems, 1 pixel = 1/96 inch.
  • On Macintosh systems, 1 pixel = 1/72 inch.
(My Mac happens to be one of the last non-Retina models, so I am not affected by this... which also means that I cannot test work-arounds.)
xiaojuezi
xiaojuezi am 11 Apr. 2020
Thank you all ! I think it is a problem of macos, when explicitly setting '-r72' or '-r96' for different os, the problem is solved.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Graphics Objects finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by