Чтобы отобразить изображение в оригинальном размере (1: 1), нужно позаботиться о трех вещах:
- Размер фигуры и единиц.
- Размеры осей и единицы измерения.
- Соотношение сторон данных осей.
После того, как все это установлено в соответствии с размером изображения, даже с помощью функции image()
MATLAB, можно генерировать изображение 1: 1.
Вот пример кода:
%% Load Data
mI = imread('7572939538_04e373d8f4_z.jpg');
numRows = size(mI, 1);
numCols = size(mI, 2);
%% Setings
horMargin = 30;
verMargin = 60; %<! Title requires more
%% Display Image
vFigPos = [100, 100, numCols + (2 * horMargin), numRows + (2 * verMargin)]; %<! [Left, Bottom, Width, Height]
vAxesPos = [horMargin, verMargin, numCols, numRows];
hFigure = figure('Position', vFigPos, 'Units', 'pixels');
hAxes = axes('Units', 'pixels', 'Position', vAxesPos);
hImageObj = image(hAxes, mI);
set(hAxes, 'DataAspectRatio', [1, 1, 1]);
set(get(hAxes, 'Title'), 'String', {['Landscape by Roman Vanur']}, ...
'Fontsize', fontSizeTitle);
set(hAxes, 'XTick', []);
set(hAxes, 'YTick', []);
Результат (на основе изображения - Пейзаж Романа Ванура ):
Полный код в моем Переполнении стека Q1427602 Github Repository .