La soluzione fornita da @Jonas, che ho già upvoted, è davvero buona. Mi permetto di suggerire alcuni piccoli miglioramenti in modo che gestisce il caso in cui la cifra si ridimensiona:
%# read an image and make it large
img = imread('autumn.tif');
img = repmat(img, [10 10]);
%# new figure
hFig = figure;
%# try show image at full size (suppress possible warning)
s = warning('off', 'Images:initSize:adjustingMag');
imshow(img, 'InitialMagnification',100, 'Border','tight')
warning(s);
%# handle figure resize events
hAx = gca;
set(hFig, 'ResizeFcn',{@onResize,hAx})
%# call it at least once
feval(@onResize,hFig,[],hAx);
%# enable panning tool
pan on
il seguente è la funzione di ridimensionamento di callback:
function onResize(o,e,hAx)
%# get axes limits in pixels
oldUnits = get(hAx, 'Units'); %# backup normalized units
set(hAx, 'Units','pixels')
pos = get(hAx, 'Position');
set(hAx, 'Units',oldUnits) %# restore units (so it auto-resize)
%# display the top left part of the image at magnification 100%
xlim(hAx, [0 pos(3)]+0.5)
ylim(hAx, [0 pos(4)]+0.5)
end
Probabilmente si potrebbe migliorare questo inoltre, quando ridimensionate la figura, non tornate sempre all'angolo in alto a sinistra, ma mantenete la posizione corrente.
hai considerato l'utilizzo di [IMTOOL] (http://www.mathworks.com/help/toolbox/images/ref/imtool.html)? – Amro
L'ho provato .. funziona ... ma voglio che 'imshow' lo faccia a causa del salvataggio dei problemi usando' stampa' .. 'imtool' non mi abiliterà a salvare la domanda simile –
: [MATLAB: mostrare un'immagine nella sua dimensione originale] (http://stackoverflow.com/questions/1427602/matlab-showing-an-image-in-its-original-size) – Amro