pixelaxes.m

来自「matlab的steel金字塔小波分解源代码」· M 代码 · 共 71 行

M
71
字号
% [ZOOM] = pixelAxes(DIMS, ZOOM)%% Set the axes of the current plot to cover a multiple of DIMS pixels,% thereby eliminating screen aliasing artifacts when displaying an% image of size DIMS.  % % ZOOM (optional, default='same') expresses the desired number of% samples displayed per screen pixel.  It should be a scalar, which% will be rounded to the nearest integer, or 1 over an integer.  It% may also be the string 'same' or 'auto', in which case the value is chosen so% as to produce an image closest in size to the currently displayed% image.  It may also be the string 'full', in which case the image is% made as large as possible while still fitting in the window.% Eero Simoncelli, 2/97.function [zoom] = pixelAxes(dims, zoom)%------------------------------------------------------------%% OPTIONAL ARGS:if (exist('zoom') ~= 1)  zoom = 'same';end%% Reverse  dimension order, since Figure Positions reported as (x,y).dims = dims(2:-1:1);%% Use MatLab's axis function to force square pixels, etc:axis('image');ax = gca;oldunits = get(ax,'Units');if strcmp(zoom,'full');  set(ax,'Units','normalized');  set(ax,'Position',[0 0 1 1]);  zoom = 'same';endset(ax,'Units','pixels');pos = get(ax,'Position');ctr = pos(1:2)+pos(3:4)/2;if (strcmp(zoom,'same') | strcmp(zoom,'auto'))  %% HACK: enlarge slightly so that floor doesn't round down   zoom = min( pos(3:4) ./ (dims - 1) );elseif isstr(zoom)  error(sprintf('Bad ZOOM argument: %s',zoom));end%% Force zoom value to be an integer, or inverse integer.if (zoom < 0.75)  zoom = 1/ceil(1/zoom);  %% Round upward, subtracting 0.5 to avoid floating point errors.  newsz = ceil(zoom*(dims-0.5));else  zoom = floor(zoom + 0.001);		% Avoid floating pt errors  if (zoom < 1.5)			% zoom=1    zoom = 1;    newsz = dims + 0.5;  else    newsz = zoom*(dims-1) + mod(zoom,2);  endend set(ax,'Position', [floor(ctr-newsz/2)+0.5, newsz] )% Restore unitsset(ax,'Units',oldunits);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?