home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / octave-1.1.1p1-src.tgz / tar.out / fsf / octave / scripts / image / ind2rgb.m < prev    next >
Text File  |  1996-09-28  |  2KB  |  60 lines

  1. # Copyright (C) 1995 John W. Eaton
  2. # This file is part of Octave.
  3. # Octave is free software; you can redistribute it and/or modify it
  4. # under the terms of the GNU General Public License as published by the
  5. # Free Software Foundation; either version 2, or (at your option) any
  6. # later version.
  7. # Octave is distributed in the hope that it will be useful, but WITHOUT
  8. # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  9. # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  10. # for more details.
  11. # You should have received a copy of the GNU General Public License
  12. # along with Octave; see the file COPYING.  If not, write to the Free
  13. # Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  14.  
  15. function [R, G, B] = ind2rgb (X, map)
  16.  
  17. # Convert an indexed image to red, green, and blue color components.
  18. #
  19. # [R G B] = ind2rgb(X) uses the current colormap for the conversion.
  20. #
  21. # [R G B] = ind2rgb(X,map) uses the specified colormap.
  22. #
  23. # SEE ALSO: rgb2ind, image, imshow, ind2gray, gray2ind.
  24.  
  25. # Written by Tony Richardson (amr@mpl.ucsd.edu) July 1994.
  26.  
  27.   if (nargin < 1 || nargin > 2)
  28.     usage ("ind2rgb (X, map)");
  29.   elseif (nargin == 1)
  30.     map = colormap ();
  31.   endif
  32.  
  33.   [hi, wi] = size (X);
  34.  
  35. # XXX FIXME XXX -- we should check size of X and map.
  36.  
  37.   pref = do_fortran_indexing;
  38.  
  39.   unwind_protect
  40.  
  41.     do_fortran_indexing = "true";
  42.  
  43.     R = map (X(:), 1);
  44.     G = map (X(:), 2);
  45.     B = map (X(:), 3);
  46.  
  47.     R = reshape (R, hi, wi);
  48.     G = reshape (G, hi, wi);
  49.     B = reshape (B, hi, wi);
  50.  
  51.   unwind_protect_cleanup
  52.     do_fortran_indexing = pref;
  53.   end_unwind_protect
  54.  
  55. endfunction
  56.