Mercurial > octave
diff scripts/image/image.m @ 7189:e8d953d03f6a
[project @ 2007-11-26 20:42:09 by dbateman]
author | dbateman |
---|---|
date | Mon, 26 Nov 2007 20:42:11 +0000 |
parents | 87151f298e6a |
children | 0d91c2af10bd |
line wrap: on
line diff
--- a/scripts/image/image.m Mon Nov 26 20:31:25 2007 +0000 +++ b/scripts/image/image.m Mon Nov 26 20:42:11 2007 +0000 @@ -21,8 +21,8 @@ ## @deftypefn {Function File} {} image (@var{img}) ## @deftypefnx {Function File} {} image (@var{x}, @var{y}, @var{img}) ## Display a matrix as a color image. The elements of @var{x} are indices -## into the current colormap and should have values between 1 and the -## length of the colormap. +## into the current colormap, and the colormap will be scaled so that the +## extremes of @var{x} are mapped to the extremes of teh colormap. ## ## It first tries to use @code{gnuplot}, then @code{display} from ## @code{ImageMagick}, then @code{xv}, and then @code{xloadimage}. @@ -39,35 +39,57 @@ ## Created: July 1994 ## Adapted-By: jwe -function h = image (x, y, img) +function retval = image (varargin) + + if (nargin < 2) + print_usage (); + elseif (isscalar (varargin{1}) && ishandle (varargin{1})) + h = varargin {1}; + if (! strcmp (get (h, "type"), "axes")) + error ("image: expecting first argument to be an axes object"); + endif + oldh = gca (); + unwind_protect + axes (h); + tmp = __image__ (h, varargin{2:end}); + unwind_protect_cleanup + axes (oldh); + end_unwind_protect + else + tmp = __image__ (gca (), varargin{:}); + endif + + if (nargout > 0) + retval = tmp; + endif + +endfunction + +function h = __image__ (ax, x, y, img) ## Deprecated zoom. Remove this hunk of code if old zoom argument ## is outmoded. - if ((nargin == 2 && isscalar (y)) || nargin == 4) + if ((nargin == 3 && isscalar (y)) || nargin == 5) warning ("image: zoom argument ignored -- use GUI features"); endif - if (nargin == 4) - nargin = 3; + if (nargin == 5) + nargin = 4; endif - if (nargin == 2 && isscalar (y)) - nargin = 1; + if (nargin == 3 && isscalar (y)) + nargin = 2; endif - if (nargin == 0) + if (nargin == 1) ## Load Bobbie Jo Richardson (Born 3/16/94) img = loadimage ("default.img"); x = y = []; - elseif (nargin == 1) + elseif (nargin == 2) img = x; x = y = []; - elseif (nargin == 2 || nargin > 3) + elseif (nargin == 3 || nargin > 4) print_usage (); endif - tmp = __img__ (x, y, img); - - if (nargout > 0) - h = tmp; - endif + h = __img__ (x, y, img); endfunction