% SHOW - Displays an image with the right size and colors and with a title. % % Usage: show(im, figNo, title) % % Arguments: im - Either a 2 or 3D array of pixel values or the name % of an image file; % figNo - Optional figure number to display image in. If % figNo is 0 the current figure or subplot is % assumed. % title - Optional string specifying figure title % % The function displays the image, automatically setting the colour map to % grey if it is a 2D image, or leaving it as colour otherwise, and setting % the axes to be 'equal'. The image is also displayed as 'TrueSize', that % is, pixels on the screen match pixels in the image (if it is possible % to fit it on the screen, otherwise MATLAB rescales it to fit). % % Unless you are doing a subplot (figNo==0) the window is sized to match % the image, leaving no border, and hence saving desktop real estate. % % If figNo is omitted a new figure window is created for the image. If % figNo is supplied, and the figure exists, the existing window is reused to % display the image, otherwise a new window is created. If figNo is 0 the % current figure or subplot is assumed. % Copyright (c) 2000-2003 Peter Kovesi % School of Computer Science & Software Engineering % The University of Western Australia % http://www.csse.uwa.edu.au/ % % Permission is hereby granted, free of charge, to any person obtaining a copy % of this software and associated documentation files (the "Software"), to deal % in the Software without restriction, subject to the following conditions: % % The above copyright notice and this permission notice shall be included in % all copies or substantial portions of the Software. % % The Software is provided "as is", without warranty of any kind. % October 2000 Original version % March 2003 Tweeks to put figure name in window bar and allow for % subplots function show(im, figNo, Title) warning('off'); % Turn off warnings that might arise if image % has to be rescaled to fit on screen if nargin <= 2 if ~isnumeric(im) & ~islogical(im) % Guess that an image name has % been supplied Title = im; im = imread(im); else Title = inputname(1); % Get variable name of image data end end newWindow = 1; if nargin >= 2 if figNo % We have a valid figure number figure(figNo); % Reuse or create a figure window with % this number subplot('position',[0 0 1 1]); % Use the whole window else newWindow=0; % figNo == 0 end else figNo = figure; % Create new figure window subplot('position',[0 0 1 1]); % Use the whole window end if ndims(im) == 2 % Display as greyscale imagesc(im) colormap('gray'); else imshow(im) % Display as RGB end if newWindow axis('image'), axis('off') set(figNo,'name', [' ' Title]), truesize(figNo) else % Assume we are trying to do a subplot axis('image'), axis('off') title(Title) % Use a title rather than rename the figure end warning('on'); % Restore warnings