1 | % SHOW - Displays an image with the right size and colors and with a title. |
---|
2 | % |
---|
3 | % Usage: show(im, figNo, title) |
---|
4 | % |
---|
5 | % Arguments: im - Either a 2 or 3D array of pixel values or the name |
---|
6 | % of an image file; |
---|
7 | % figNo - Optional figure number to display image in. If |
---|
8 | % figNo is 0 the current figure or subplot is |
---|
9 | % assumed. |
---|
10 | % title - Optional string specifying figure title |
---|
11 | % |
---|
12 | % The function displays the image, automatically setting the colour map to |
---|
13 | % grey if it is a 2D image, or leaving it as colour otherwise, and setting |
---|
14 | % the axes to be 'equal'. The image is also displayed as 'TrueSize', that |
---|
15 | % is, pixels on the screen match pixels in the image (if it is possible |
---|
16 | % to fit it on the screen, otherwise MATLAB rescales it to fit). |
---|
17 | % |
---|
18 | % Unless you are doing a subplot (figNo==0) the window is sized to match |
---|
19 | % the image, leaving no border, and hence saving desktop real estate. |
---|
20 | % |
---|
21 | % If figNo is omitted a new figure window is created for the image. If |
---|
22 | % figNo is supplied, and the figure exists, the existing window is reused to |
---|
23 | % display the image, otherwise a new window is created. If figNo is 0 the |
---|
24 | % current figure or subplot is assumed. |
---|
25 | |
---|
26 | % Copyright (c) 2000-2003 Peter Kovesi |
---|
27 | % School of Computer Science & Software Engineering |
---|
28 | % The University of Western Australia |
---|
29 | % http://www.csse.uwa.edu.au/ |
---|
30 | % |
---|
31 | % Permission is hereby granted, free of charge, to any person obtaining a copy |
---|
32 | % of this software and associated documentation files (the "Software"), to deal |
---|
33 | % in the Software without restriction, subject to the following conditions: |
---|
34 | % |
---|
35 | % The above copyright notice and this permission notice shall be included in |
---|
36 | % all copies or substantial portions of the Software. |
---|
37 | % |
---|
38 | % The Software is provided "as is", without warranty of any kind. |
---|
39 | |
---|
40 | % October 2000 Original version |
---|
41 | % March 2003 Tweeks to put figure name in window bar and allow for |
---|
42 | % subplots |
---|
43 | |
---|
44 | |
---|
45 | function show(im, figNo, Title) |
---|
46 | |
---|
47 | warning('off'); % Turn off warnings that might arise if image |
---|
48 | % has to be rescaled to fit on screen |
---|
49 | |
---|
50 | if nargin <= 2 |
---|
51 | if ~isnumeric(im) & ~islogical(im) % Guess that an image name has |
---|
52 | % been supplied |
---|
53 | Title = im; |
---|
54 | im = imread(im); |
---|
55 | else |
---|
56 | Title = inputname(1); % Get variable name of image data |
---|
57 | end |
---|
58 | end |
---|
59 | |
---|
60 | newWindow = 1; |
---|
61 | if nargin >= 2 |
---|
62 | if figNo % We have a valid figure number |
---|
63 | figure(figNo); % Reuse or create a figure window with |
---|
64 | % this number |
---|
65 | subplot('position',[0 0 1 1]); % Use the whole window |
---|
66 | else |
---|
67 | newWindow=0; % figNo == 0 |
---|
68 | end |
---|
69 | else |
---|
70 | figNo = figure; % Create new figure window |
---|
71 | subplot('position',[0 0 1 1]); % Use the whole window |
---|
72 | end |
---|
73 | |
---|
74 | if ndims(im) == 2 % Display as greyscale |
---|
75 | imagesc(im) |
---|
76 | colormap('gray'); |
---|
77 | else |
---|
78 | imshow(im) % Display as RGB |
---|
79 | end |
---|
80 | |
---|
81 | if newWindow |
---|
82 | axis('image'), axis('off') |
---|
83 | set(figNo,'name', [' ' Title]), truesize(figNo) |
---|
84 | else % Assume we are trying to do a subplot |
---|
85 | axis('image'), axis('off') |
---|
86 | title(Title) % Use a title rather than rename the figure |
---|
87 | end |
---|
88 | |
---|
89 | warning('on'); % Restore warnings |
---|
90 | |
---|
91 | |
---|