annotate scripts/image/imshow.m @ 14237:11949c9795a0

Revamp %!demos in m-files to use Octave coding conventions on spacing, etc. Add clf() to all demos using plot features to get reproducibility. Use 64 as input to all colormaps (jet (64)) to get reproducibility. * bicubic.m, cell2mat.m, celldisp.m, cplxpair.m, interp1.m, interp2.m, interpft.m, interpn.m, profile.m, profshow.m, convhull.m, delaunay.m, griddata.m, inpolygon.m, voronoi.m, autumn.m, bone.m, contrast.m, cool.m, copper.m, flag.m, gmap40.m, gray.m, hot.m, hsv.m, image.m, imshow.m, jet.m, ocean.m, pink.m, prism.m, rainbow.m, spring.m, summer.m, white.m, winter.m, condest.m, onenormest.m, axis.m, clabel.m, colorbar.m, comet.m, comet3.m, compass.m, contour.m, contour3.m, contourf.m, cylinder.m, daspect.m, ellipsoid.m, errorbar.m, ezcontour.m, ezcontourf.m, ezmesh.m, ezmeshc.m, ezplot.m, ezplot3.m, ezpolar.m, ezsurf.m, ezsurfc.m, feather.m, fill.m, fplot.m, grid.m, hold.m, isosurface.m, legend.m, loglog.m, loglogerr.m, pareto.m, patch.m, pbaspect.m, pcolor.m, pie.m, pie3.m, plot3.m, plotmatrix.m, plotyy.m, polar.m, quiver.m, quiver3.m, rectangle.m, refreshdata.m, ribbon.m, rose.m, scatter.m, scatter3.m, semilogx.m, semilogxerr.m, semilogy.m, semilogyerr.m, shading.m, slice.m, sombrero.m, stairs.m, stem.m, stem3.m, subplot.m, surf.m, surfc.m, surfl.m, surfnorm.m, text.m, title.m, trimesh.m, triplot.m, trisurf.m, uigetdir.m, uigetfile.m, uimenu.m, uiputfile.m, waitbar.m, xlim.m, ylim.m, zlim.m, mkpp.m, pchip.m, polyaffine.m, spline.m, bicgstab.m, cgs.m, gplot.m, pcg.m, pcr.m, treeplot.m, strtok.m, demo.m, example.m, rundemos.m, speed.m, test.m, calendar.m, datestr.m, datetick.m, weekday.m: Revamp %!demos to use Octave coding conventions on spacing, etc.
author Rik <octave@nomad.inbox5.com>
date Fri, 20 Jan 2012 12:59:53 -0800
parents 72c96de7a403
children b76f0740940e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14138
72c96de7a403 maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents: 14001
diff changeset
1 ## Copyright (C) 1994-2012 John W. Eaton
11587
c792872f8942 all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents: 11523
diff changeset
2 ##
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
3 ## This file is part of Octave.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
4 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
6 ## under the terms of the GNU General Public License as published by
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6757
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6757
diff changeset
8 ## your option) any later version.
2313
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
9 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
13 ## General Public License for more details.
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
14 ##
5ca126254d15 [project @ 1996-07-11 21:25:22 by jwe]
jwe
parents: 2312
diff changeset
15 ## You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6757
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6757
diff changeset
17 ## <http://www.gnu.org/licenses/>.
1024
56520a75b5b3 [project @ 1995-01-11 20:30:04 by jwe]
jwe
parents: 904
diff changeset
18
3381
69b167451491 [project @ 1999-12-15 20:48:10 by jwe]
jwe
parents: 3373
diff changeset
19 ## -*- texinfo -*-
10793
be55736a0783 Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents: 10648
diff changeset
20 ## @deftypefn {Function File} {} imshow (@var{im})
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
21 ## @deftypefnx {Function File} {} imshow (@var{im}, @var{limits})
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
22 ## @deftypefnx {Function File} {} imshow (@var{im}, @var{map})
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
23 ## @deftypefnx {Function File} {} imshow (@var{rgb}, @dots{})
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
24 ## @deftypefnx {Function File} {} imshow (@var{filename})
6309
6a60e68fc4b1 [project @ 2007-02-15 09:49:27 by jwe]
jwe
parents: 6219
diff changeset
25 ## @deftypefnx {Function File} {} imshow (@dots{}, @var{string_param1}, @var{value1}, @dots{})
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 13738
diff changeset
26 ## @deftypefnx {Function File} {@var{h} =} imshow (@dots{})
6368
ec2a523713b5 [project @ 2007-02-28 22:07:24 by jwe]
jwe
parents: 6310
diff changeset
27 ## Display the image @var{im}, where @var{im} can be a 2-dimensional
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
28 ## (gray-scale image) or a 3-dimensional (RGB image) matrix.
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
29 ##
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
30 ## If @var{limits} is a 2-element vector @code{[@var{low}, @var{high}]},
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
31 ## the image is shown using a display range between @var{low} and
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
32 ## @var{high}. If an empty matrix is passed for @var{limits}, the
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
33 ## display range is computed as the range between the minimal and the
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
34 ## maximal value in the image.
3426
f8dde1807dee [project @ 2000-01-13 08:40:00 by jwe]
jwe
parents: 3381
diff changeset
35 ##
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
36 ## If @var{map} is a valid color map, the image will be shown as an indexed
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
37 ## image using the supplied color map.
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
38 ##
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
39 ## If a file name is given instead of an image, the file will be read and
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
40 ## shown.
3426
f8dde1807dee [project @ 2000-01-13 08:40:00 by jwe]
jwe
parents: 3381
diff changeset
41 ##
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
42 ## If given, the parameter @var{string_param1} has value
9051
1bf0ce0930be Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents: 8920
diff changeset
43 ## @var{value1}. @var{string_param1} can be any of the following:
11595
5ec6aa05638d Prevent doubled quotes around @table items in Info.
Rik <octave@nomad.inbox5.com>
parents: 11587
diff changeset
44 ## @table @asis
6368
ec2a523713b5 [project @ 2007-02-28 22:07:24 by jwe]
jwe
parents: 6310
diff changeset
45 ## @item "displayrange"
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
46 ## @var{value1} is the display range as described above.
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
47 ## @end table
14001
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 13738
diff changeset
48 ##
5f0bb45e615c doc: Update documentation for functions returning a graphics handle h (Bug #34761)
Rik <octave@nomad.inbox5.com>
parents: 13738
diff changeset
49 ## The optional return value @var{h} is a graphics handle to the image.
5642
2618a0750ae6 [project @ 2006-03-06 21:26:48 by jwe]
jwe
parents: 5443
diff changeset
50 ## @seealso{image, imagesc, colormap, gray2ind, rgb2ind}
3373
36405da8e173 [project @ 1999-11-23 20:54:17 by jwe]
jwe
parents: 3202
diff changeset
51 ## @end deftypefn
904
3470f1e25a79 [project @ 1994-11-09 21:22:15 by jwe]
jwe
parents: 559
diff changeset
52
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
53 ## Author: Stefan van der Walt <stefan@sun.ac.za>
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
54 ## Author: Soren Hauberg <hauberg at gmail dot com>
2312
204cc7db6f4a [project @ 1996-07-11 21:20:36 by jwe]
jwe
parents: 2311
diff changeset
55 ## Adapted-By: jwe
559
4e826edfbc56 [project @ 1994-07-25 22:18:28 by jwe]
jwe
parents:
diff changeset
56
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
57 function h = imshow (im, varargin)
559
4e826edfbc56 [project @ 1994-07-25 22:18:28 by jwe]
jwe
parents:
diff changeset
58
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
59 if (nargin == 0)
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
60 print_usage ();
5318
9a72639b62a7 [project @ 2005-04-28 18:44:27 by jwe]
jwe
parents: 5307
diff changeset
61 endif
9a72639b62a7 [project @ 2005-04-28 18:44:27 by jwe]
jwe
parents: 5307
diff changeset
62
7328
d0784e593d39 [project @ 2007-12-20 07:24:02 by jwe]
jwe
parents: 7321
diff changeset
63 display_range = NA;
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
64 true_color = false;
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
65 indexed = false;
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
66
5935
01ff100fcd64 [project @ 2006-08-17 20:40:58 by jwe]
jwe
parents: 5934
diff changeset
67 ## Get the image.
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
68 if (ischar (im))
7931
de26beacb20f imread.m: simplify; loadimage.m: deprecate
John W. Eaton <jwe@octave.org>
parents: 7930
diff changeset
69 [im, map] = imread (im);
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
70 indexed = true;
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
71 colormap (map);
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
72 endif
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
73
10286
8cf666139297 imshow for logical matrices
John W. Eaton <jwe@octave.org>
parents: 9273
diff changeset
74 nd = ndims (im);
8cf666139297 imshow for logical matrices
John W. Eaton <jwe@octave.org>
parents: 9273
diff changeset
75
8cf666139297 imshow for logical matrices
John W. Eaton <jwe@octave.org>
parents: 9273
diff changeset
76 if (! ((isnumeric (im) || islogical (im)) && (nd == 2 || nd == 3)))
11472
1740012184f9 Use uppercase for variable names in error() strings to match Info documentation. Only m-files done.
Rik <octave@nomad.inbox5.com>
parents: 11324
diff changeset
77 error ("imshow: IM must be an image or the filename of an image");
5318
9a72639b62a7 [project @ 2005-04-28 18:44:27 by jwe]
jwe
parents: 5307
diff changeset
78 endif
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
79
10286
8cf666139297 imshow for logical matrices
John W. Eaton <jwe@octave.org>
parents: 9273
diff changeset
80 if (nd == 2)
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
81 if (! indexed)
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
82 colormap (gray ());
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
83 endif
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
84 elseif (size (im, 3) == 3)
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
85 if (ismember (class (im), {"uint8", "uint16", "double", "single"}))
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
86 true_color = true;
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
87 else
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
88 error ("imshow: color image must be uint8, uint16, double, or single");
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
89 endif
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
90 else
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
91 error ("imshow: expecting MxN or MxNx3 matrix for image");
5318
9a72639b62a7 [project @ 2005-04-28 18:44:27 by jwe]
jwe
parents: 5307
diff changeset
92 endif
9a72639b62a7 [project @ 2005-04-28 18:44:27 by jwe]
jwe
parents: 5307
diff changeset
93
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
94 narg = 1;
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
95 while (narg <= numel (varargin))
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
96 arg = varargin{narg++};
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
97 if (isnumeric (arg))
7331
3ed85de5922c [project @ 2007-12-21 17:40:20 by jwe]
jwe
parents: 7328
diff changeset
98 if (numel (arg) == 2 || isempty (arg))
10433
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
99 display_range = arg;
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
100 elseif (columns (arg) == 3)
10433
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
101 indexed = true;
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
102 colormap (arg);
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
103 elseif (! isempty (arg))
10433
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
104 error ("imshow: argument number %d is invalid", narg+1);
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
105 endif
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
106 elseif (ischar (arg))
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
107 switch (arg)
10433
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
108 case "displayrange";
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
109 display_range = varargin{narg++};
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
110 case {"truesize", "initialmagnification"}
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
111 warning ("image: zoom argument ignored -- use GUI features");
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
112 otherwise
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
113 warning ("imshow: unrecognized property %s", arg);
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
114 narg++;
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
115 endswitch
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
116 else
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
117 error ("imshow: argument number %d is invalid", narg+1);
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
118 endif
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
119 endwhile
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
120
13738
7ee61e56eaed Periodic merge of stable to default
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 13705
diff changeset
121 ## Check for complex images.
7ee61e56eaed Periodic merge of stable to default
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 13705
diff changeset
122 if (iscomplex (im))
7ee61e56eaed Periodic merge of stable to default
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 13705
diff changeset
123 warning ("imshow: only showing real part of complex image");
7ee61e56eaed Periodic merge of stable to default
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 13705
diff changeset
124 im = real (im);
7ee61e56eaed Periodic merge of stable to default
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 13705
diff changeset
125 endif
7ee61e56eaed Periodic merge of stable to default
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 13705
diff changeset
126
8117
40aa36406a94 Fix for display_range in imshow
Kris Thielemans
parents: 7931
diff changeset
127 ## Set default display range if display_range not set yet.
7328
d0784e593d39 [project @ 2007-12-20 07:24:02 by jwe]
jwe
parents: 7321
diff changeset
128 if (isempty (display_range))
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
129 display_range = [min(im(:)), max(im(:))];
8117
40aa36406a94 Fix for display_range in imshow
Kris Thielemans
parents: 7931
diff changeset
130 elseif (isna (display_range))
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
131 t = class (im);
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
132 switch (t)
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
133 case {"double", "single", "logical"}
10433
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
134 display_range = [0, 1];
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
135 case {"int8", "int16", "int32", "uint8", "uint16", "uint32"}
11597
a066673566da set clim to [0,1] so that scaled cdatamapping works as intended.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11595
diff changeset
136 display_range = [intmin(t), intmax(t)];
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
137 otherwise
10433
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
138 error ("imshow: invalid data type for image");
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
139 endswitch
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
140 endif
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
141
6219
ba9db82d85a8 [project @ 2006-12-27 17:53:34 by jwe]
jwe
parents: 6157
diff changeset
142 nans = isnan (im(:));
ba9db82d85a8 [project @ 2006-12-27 17:53:34 by jwe]
jwe
parents: 6157
diff changeset
143 if (any (nans))
ba9db82d85a8 [project @ 2006-12-27 17:53:34 by jwe]
jwe
parents: 6157
diff changeset
144 warning ("Octave:imshow-NaN",
10433
2c01d24459fb Detabify scripts in 'scripts/image/'
Soren Hauberg <hauberg@gmail.com>
parents: 10286
diff changeset
145 "imshow: pixels with NaN or NA values are set to minimum pixel value");
6219
ba9db82d85a8 [project @ 2006-12-27 17:53:34 by jwe]
jwe
parents: 6157
diff changeset
146 im(nans) = display_range(1);
ba9db82d85a8 [project @ 2006-12-27 17:53:34 by jwe]
jwe
parents: 6157
diff changeset
147 endif
ba9db82d85a8 [project @ 2006-12-27 17:53:34 by jwe]
jwe
parents: 6157
diff changeset
148
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
149 ## This is for compatibility.
7930
1f6eb3de1c4e __img__.m, imshow.m, __go_draw_axes__.m: improve handling of truecolor images
John W. Eaton <jwe@octave.org>
parents: 7511
diff changeset
150 if (! (indexed || (true_color && isinteger (im))) || islogical (im))
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
151 im = double (im);
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
152 endif
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
153
11597
a066673566da set clim to [0,1] so that scaled cdatamapping works as intended.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11595
diff changeset
154 ## Clamp the image to the range boundaries
7315
3ceb12c499e9 [project @ 2007-12-13 21:35:36 by jwe]
jwe
parents: 7074
diff changeset
155 if (! (true_color || indexed || islogical (im)))
7328
d0784e593d39 [project @ 2007-12-20 07:24:02 by jwe]
jwe
parents: 7321
diff changeset
156 low = display_range(1);
d0784e593d39 [project @ 2007-12-20 07:24:02 by jwe]
jwe
parents: 7321
diff changeset
157 high = display_range(2);
11597
a066673566da set clim to [0,1] so that scaled cdatamapping works as intended.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11595
diff changeset
158 im(im < low) = low;
a066673566da set clim to [0,1] so that scaled cdatamapping works as intended.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11595
diff changeset
159 im(im > high) = high;
4836
518e495e489f [project @ 2004-03-12 18:16:03 by jwe]
jwe
parents: 3457
diff changeset
160 endif
6368
ec2a523713b5 [project @ 2007-02-28 22:07:24 by jwe]
jwe
parents: 6310
diff changeset
161
9269
06518194dba0 fix displaying indexed images
Jaroslav Hajek <highegg@gmail.com>
parents: 9245
diff changeset
162 if (true_color || indexed)
06518194dba0 fix displaying indexed images
Jaroslav Hajek <highegg@gmail.com>
parents: 9245
diff changeset
163 tmp = image ([], [], im);
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
164 else
10648
bc4eb29e0cb4 Scale image point color according to colormap. Bug #29926.
Rik <octave@nomad.inbox5.com>
parents: 10433
diff changeset
165 tmp = image (im);
bc4eb29e0cb4 Scale image point color according to colormap. Bug #29926.
Rik <octave@nomad.inbox5.com>
parents: 10433
diff changeset
166 set (tmp, "cdatamapping", "scaled");
11597
a066673566da set clim to [0,1] so that scaled cdatamapping works as intended.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11595
diff changeset
167 ## The backend is responsible for scaling to clim if necessary.
a066673566da set clim to [0,1] so that scaled cdatamapping works as intended.
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 11595
diff changeset
168 set (gca (), "clim", display_range);
5934
8702f00329bf [project @ 2006-08-17 20:29:51 by jwe]
jwe
parents: 5642
diff changeset
169 endif
11324
e773d57de572 imshow.m: Flip y-axis.
Ben Abbott <bpabbott@mac.com>
parents: 10793
diff changeset
170 set (gca (), "visible", "off", "ydir", "reverse");
7511
f028e7aa77a7 imshow.m: use axis ("image")
John W. Eaton <jwe@octave.org>
parents: 7331
diff changeset
171 axis ("image");
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
172
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
173 if (nargout > 0)
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
174 h = tmp;
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
175 endif
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
176
559
4e826edfbc56 [project @ 1994-07-25 22:18:28 by jwe]
jwe
parents:
diff changeset
177 endfunction
4836
518e495e489f [project @ 2004-03-12 18:16:03 by jwe]
jwe
parents: 3457
diff changeset
178
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
179
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
180 %!demo
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
181 %! clf;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
182 %! imshow ("default.img");
4836
518e495e489f [project @ 2004-03-12 18:16:03 by jwe]
jwe
parents: 3457
diff changeset
183
518e495e489f [project @ 2004-03-12 18:16:03 by jwe]
jwe
parents: 3457
diff changeset
184 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
185 %! clf;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
186 %! imshow ("default.img");
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
187 %! colormap (autumn (64));
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
188
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
189 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
190 %! clf;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
191 %! [I, M] = imread ("default.img");
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
192 %! imshow (I, M);
4836
518e495e489f [project @ 2004-03-12 18:16:03 by jwe]
jwe
parents: 3457
diff changeset
193
518e495e489f [project @ 2004-03-12 18:16:03 by jwe]
jwe
parents: 3457
diff changeset
194 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
195 %! clf;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
196 %! [I, M] = imread ("default.img");
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
197 %! [R, G, B] = ind2rgb (I, M);
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
198 %! imshow (cat (3, R, G*0.5, B*0.8));
5318
9a72639b62a7 [project @ 2005-04-28 18:44:27 by jwe]
jwe
parents: 5307
diff changeset
199
9a72639b62a7 [project @ 2005-04-28 18:44:27 by jwe]
jwe
parents: 5307
diff changeset
200 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
201 %! clf;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
202 %! imshow (rand (100, 100));
5318
9a72639b62a7 [project @ 2005-04-28 18:44:27 by jwe]
jwe
parents: 5307
diff changeset
203
9a72639b62a7 [project @ 2005-04-28 18:44:27 by jwe]
jwe
parents: 5307
diff changeset
204 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
205 %! clf;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
206 %! imshow (rand (100, 100, 3));
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
207
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
208 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
209 %! clf;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
210 %! imshow (100*rand (100, 100, 3));
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
211
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
212 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
213 %! clf;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
214 %! imshow (rand (100, 100));
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
215 %! colormap (jet (64));
7074
87151f298e6a [project @ 2007-10-26 17:57:34 by jwe]
jwe
parents: 7017
diff changeset
216
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
217 %% Test input validation
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
218 %!error imshow ()
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
219 %!error <IM must be an image> imshow ({"cell"})
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
220 %!error <expecting MxN or MxNx3 matrix> imshow (ones (4,4,4))
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
221