changeset 5922:1748af819fbb

[project @ 2006-08-14 18:16:57 by jwe]
author jwe
date Mon, 14 Aug 2006 18:16:57 +0000
parents 28e8abe7027e
children 611e30b984b3
files scripts/ChangeLog scripts/image/rgb2ind.m
diffstat 2 files changed, 19 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/ChangeLog
+++ b/scripts/ChangeLog
@@ -1,3 +1,7 @@
+2006-08-14  Søren Hauberg  <hauberg@gmail.com>
+
+	* rgb2ind.m: Handle single 3-d array as rgb image.
+
 2006-08-14  John W. Eaton  <jwe@octave.org>
 
 	* strings/str2double.m: Fix missing semicolon.
--- a/scripts/image/rgb2ind.m
+++ b/scripts/image/rgb2ind.m
@@ -18,7 +18,8 @@
 ## 02110-1301, USA.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{r}, @var{g}, @var{b})
+## @deftypefn  {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{rgb})
+## @deftypefnx {Function File} {[@var{x}, @var{map}] =} rgb2ind (@var{r}, @var{g}, @var{b})
 ## Convert and RGB image to an Octave indexed image.
 ## @seealso{ind2rgb, rgb2ntsc}
 ## @end deftypefn
@@ -31,8 +32,19 @@
 
 function [X, map] = rgb2ind (R, G, B)
 
-  if (nargin != 3)
-    usage ("[X, map] = rgb2ind (R, G, B)");
+  if (nargin != 1 && nargin != 3)
+    print_usage ();
+  endif
+  
+  if (nargin == 1)
+    rgb = R;
+    if (length (size (rgb)) == 3 && size (rgb, 3) == 3)
+      R = rgb(:,:,1);
+      G = rgb(:,:,2);
+      B = rgb(:,:,3);
+    else
+      error ("rgb2ind: argument is not an RGB image");
+    endif
   endif
 
   if (size (R) != size (G) || size (R) != size (B))