Mercurial > octave-dspies
diff scripts/image/image.m @ 3651:c2305b99fbd7
[project @ 2000-03-31 07:12:29 by jwe]
author | jwe |
---|---|
date | Fri, 31 Mar 2000 07:12:30 +0000 |
parents | e031284eea27 |
children | 38ff09748e26 |
line wrap: on
line diff
--- a/scripts/image/image.m Fri Mar 31 06:06:16 2000 +0000 +++ b/scripts/image/image.m Fri Mar 31 07:12:30 2000 +0000 @@ -19,10 +19,14 @@ ## -*- texinfo -*- ## @deftypefn {Function File} {} image (@var{x}, @var{zoom}) +## @deftypefnx {Function File} {} image (@var{x}, @var{y}, @var{A}, @var{zoom}) ## 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. If @var{zoom} is omitted, a value of 4 is -## assumed. +## length of the colormap. If @var{zoom} is omitted, the image will be +## scaled to fit within 600x350 (to a max of 4). +## +## The axis values corresponding to the matrix elements are specified in +## @var{x} and @var{y}. At present they are ignored. ## @end deftypefn ## @seealso{imshow, imagesc, and colormap} @@ -30,21 +34,39 @@ ## Created: July 1994 ## Adapted-By: jwe -function image (x, zoom) +function image (x, y, A, zoom) if (nargin == 0) ## Load Bobbie Jo Richardson (Born 3/16/94) x = loadimage ("default.img"); zoom = 2; elseif (nargin == 1) - zoom = 4; - elseif (nargin > 2) - usage ("image (matrix, [zoom])"); + A = x; + zoom = []; + x = y = []; + elseif (nargin == 2) + A = x; + zoom = y; + x = y = []; + elseif (nargin == 3) + zoom = []; + elseif (nargin > 4) + usage ("image (matrix, zoom) or image (x, y, matrix, zoom)"); endif + if isempty(zoom) + ## Find an integer scale factor which sets the image to + ## approximately the size of the screen. + zoom = min ([350/rows(A), 600/columns(A), 4]); + if (zoom >= 1) + zoom = floor (zoom); + else + zoom = 1 / ceil (1/zoom); + endif + endif ppm_name = tmpnam (); - saveimage (ppm_name, x, "ppm"); + saveimage (ppm_name, A, "ppm"); ## Start the viewer. Try xv, then xloadimage. @@ -57,9 +79,7 @@ ## Need to let the shell clean up the tmp file because we are putting ## the viewer in the background. - command = sprintf ("( %s || %s && %s ) > /dev/null 2>&1 &", - xv, xloadimage, rm); - - system (command); + system (sprintf ("( %s || %s && %s ) > /dev/null 2>&1 &", + xv, xloadimage, rm)); endfunction