changeset 1638:66c0c17809eb octave-forge

Convert dos line endings to unix line endings
author pkienzle
date Wed, 11 Aug 2004 15:04:59 +0000
parents a2174428d418
children 007a6b79de3e
files main/image/padarray.m main/image/roicolor.m main/image/uintlut.m
diffstat 3 files changed, 421 insertions(+), 412 deletions(-) [+]
line wrap: on
line diff
--- a/main/image/padarray.m	Wed Aug 11 03:06:12 2004 +0000
+++ b/main/image/padarray.m	Wed Aug 11 15:04:59 2004 +0000
@@ -1,300 +1,303 @@
-## Copyright (C) 2004 Josep Mones i Teixidor
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{B} = } padarray (@var{A},@var{padsize})
-## @deftypefnx {Function File} {@var{B} = } padarray (@var{A},@var{padsize},@var{padval})
-## @deftypefnx {Function File} {@var{B} = } padarray (@var{A},@var{padsize},@var{padval},@var{direction})
-## Pads an array in a configurable way.
-##
-## B = padarray(A,padsize) pads an array @var{A} with zeros, where
-## @var{padsize} defines the amount of padding to add in each dimension
-## (it must be a vector of positive integers). 
-##
-## Each component of @var{padsize} defines the number of elements of
-## padding that will be added in the corresponding dimension. For
-## instance, [4,5] adds 4 elements of padding in first dimension (vertical)
-## and 5 in second dimension (horizontal).
-##
-## B = padarray(A,padsize,padval) pads @var{A} using the value specified
-## by @var{padval}. @var{padval} can be a scalar or a string. Possible
-## values are:
-## @table @code
-## @item 0
-## Pads with 0 as described above. This is the default behaviour.
-## @item scalar
-## Pads using @var{padval} as a padding value.
-## @item 'circular'
-## Pads with a circular repetition of elements in @var{A} (similar to
-## tiling @var{A}).
-## @item 'replicate'
-## Pads 'replicating' values of @var{A} which are at the border of the
-## array.
-## @item 'symmetric'
-## Pads with a mirror reflection of @var{A}.
-## @end table
-##
-## B = padarray(A,padsize,padval,direction) pads @var{A} defining the
-## direction of the pad. Possible values are:
-## @table @code
-## @item 'both'
-## For each dimension it pads before the first element the number
-## of elements defined by @var{padsize} and the same number again after
-## the last element. This is the default value.
-## @item 'pre'
-## For each dimension it pads before the first element the number of
-## elements defined by @var{padsize}.
-## @item 'post'
-## For each dimension it pads after the last element the number of
-## elements defined by @var{padsize}.
-## @end table
-## @end deftypefn
-
-## Author:  Josep Mones i Teixidor <jmones@puntbarra.com>
-
-function B = padarray(A, padsize, padval, direction)
-  # Check parameters
-  if (nargin<2 || nargin>4)
-    usage ("B = padarray(A, padsize [, padval] [, direction])");
-  endif
-  if (nargin<3)
-    padval=0;
-  endif
-  if (nargin<4)
-    direction='both';
-  endif
-
-  if (!isvector(padsize) || any(padsize<0))
-    error("padarray: padsize must be a vector of positive integers.");
-  endif
-
-  # Check direction
-  pre=false;
-  post=false;
-  switch(direction)
-    case('pre')
-      pre=true;
-    case('post')
-      post=true;
-    case('both')
-      post=true;
-      pre=true;
-    otherwise
-      error ("padarray: direction possible values are: 'pre', 'post' and 'both'");
-  endswitch
-  
-  
-  B=A;
-  dim=1;
-  for s=padsize
-    if (s>0)
-      # padding in this dimension was requested
-      ds=size(B);
-      ds=[ds, ones(1,dim-length(ds))]; # data size
-      ps=ds;
-      ps(dim)=s;		       # padding size
-
-      if (isstr(padval))
-	# Init a "index all" cell array. All cases need it.
-	idx=cell();
-	for i=1:length(ds)
-	  idx{i}=1:ds(i);
-	endfor
-
-	switch(padval)
-	  case('circular')
-	    complete=0;
-	    D=B;
-	    if (ps(dim)>ds(dim))
-	      complete=floor(ps(dim)/ds(dim));
-	      ps(dim)=rem(ps(dim),ds(dim));
-	    endif
-	    if (pre)
-	      for i=1:complete
-		B=cat(dim,D,B);
-	      endfor
-	      idxt=idx;
-	      idxt{dim}=ds(dim)-ps(dim)+1:ds(dim);
-	      B=cat(dim,D(idxt{:}),B);
-	    endif
-	    if (post)
-	      for i=1:complete
-		B=cat(dim,B,D);
-	      endfor
-	      idxt=idx;
-	      idxt{dim}=1:ps(dim);
-	      B=cat(dim,B,D(idxt{:}));
-	    endif
-	    # end circular case
-
-	  case('replicate')
-	    if (pre)
-	      idxt=idx;
-	      idxt{dim}=1;
-	      pad=B(idxt{:});
-	      # can we do this without the loop?	
-	      for i=1:s
-		B=cat(dim,pad,B);
-	      endfor
-	    endif
-	    if (post)
-	      idxt=idx;
-	      idxt{dim}=size(B,dim);
-	      pad=B(idxt{:});
-	      for i=1:s
-		B=cat(dim,B,pad);
-	      endfor
-	    endif
-	    # end replicate case
-	
-	  case('symmetric')
-	    if (ps(dim)>ds(dim))
-	      error("padarray: padding is longer than data using symmetric padding");
-	    endif
-	    if (pre)
-	      idxt=idx;
-	      idxt{dim}=ps(dim):-1:1;
-	      B=cat(dim,B(idxt{:}),B);
-	    endif
-	    if (post)
-	      idxt=idx;
-	      sbd=size(B,dim);
-	      idxt{dim}=sbd:-1:sbd-ps(dim)+1;
-	      B=cat(dim,B,B(idxt{:}));
-	    endif
-	    # end symmetric case
-
-	  otherwise
-	    error("padarray: invalid string in padval parameter.");
-
-	endswitch
-	# end cases where padval is a string
-
-      elseif (isscalar(padval))
-	# Handle fixed value padding
-	if (padval==0)
-	  pad=zeros(ps);
-	else
-	  pad=padval*ones(ps);
-	endif
-	if(pre&&post)
-	  # check if this is not quicker than just 2 calls (one for each)
-	  B=cat(dim,pad,B,pad);
-	elseif(pre)
-	  B=cat(dim,pad,B);
-	elseif(post)
-	  B=cat(dim,B,pad);
-	endif
-      else
-	error ("padarray: padval can only be a scalar or a string.");
-      endif
-    endif
-    dim+=1;
-  endfor
-endfunction
-
-%!demo
-%! padarray([1,2,3;4,5,6],[2,1])
-%! % pads [1,2,3;4,5,6] with a whole border of 2 rows and 1 columns of 0
-
-%!demo
-%! padarray([1,2,3;4,5,6],[2,1],5)
-%! % pads [1,2,3;4,5,6] with a whole border of 2 rows and 1 columns of 5
-
-%!demo
-%! padarray([1,2,3;4,5,6],[2,1],0,'pre')
-%! % pads [1,2,3;4,5,6] with a left and top border of 2 rows and 1 columns of 0
-
-%!demo
-%! padarray([1,2,3;4,5,6],[2,1],'circular')
-%! % pads [1,2,3;4,5,6] with a whole 'circular' border of 2 rows and 1 columns
-%! % border 'repeats' data as if we tiled blocks of data
-
-%!demo
-%! padarray([1,2,3;4,5,6],[2,1],'replicate')
-%! % pads [1,2,3;4,5,6] with a whole border of 2 rows and 1 columns which
-%! % 'replicates' edge data
-
-%!demo
-%! padarray([1,2,3;4,5,6],[2,1],'symmetric')
-%! % pads [1,2,3;4,5,6] with a whole border of 2 rows and 1 columns which
-%! % is symmetric to the data on the edge 
-
-% Test default padval and direction
-%!assert(padarray([1;2],[1]), [0;1;2;0]);
-%!assert(padarray([3,4],[0,2]), [0,0,3,4,0,0]);
-%!assert(padarray([1,2,3;4,5,6],[1,2]), \
-%!      [zeros(1,7);0,0,1,2,3,0,0;0,0,4,5,6,0,0;zeros(1,7)]);
-
-% This segfaults because of cat (uncomment when
-% cat(3,eye(2),eye(2)) works)
-%! %assert(padarray([1,2,3;4,5,6],[3,2,1]), cat(3, 			\
-%! %	zeros(7,7),							\
-%! %	[zeros(3,7); [zeros(2,2), [1,2,3;4,5,6], zeros(2,2)]; zeros(3,7)], \
-%! %	zeros(7,7))); 
-
-% Test if default param are ok
-%!assert(padarray([1,2],[4,5])==padarray([1,2],[4,5],0));
-%!assert(padarray([1,2],[4,5])==padarray([1,2],[4,5],0,'both'));
-
-% Test literal padval
-%!assert(padarray([1;2],[1],i), [i;1;2;i]);
-
-% Test directions (horizontal)
-%!assert(padarray([1;2],[1],i,'pre'), [i;1;2]);
-%!assert(padarray([1;2],[1],i,'post'), [1;2;i]);
-%!assert(padarray([1;2],[1],i,'both'), [i;1;2;i]);
-
-% Test directions (vertical)
-%!assert(padarray([1,2],[0,1],i,'pre'), [i,1,2]);
-%!assert(padarray([1,2],[0,1],i,'post'), [1,2,i]);
-%!assert(padarray([1,2],[0,1],i,'both'), [i,1,2,i]);
-
-% Test circular padding
-%!test
-%! A=[1,2,3;4,5,6];
-%! B=repmat(A,7,9);
-%! assert(padarray(A,[1,2],'circular','pre'), B(2:4,2:6));
-%! assert(padarray(A,[1,2],'circular','post'), B(3:5,4:8));
-%! assert(padarray(A,[1,2],'circular','both'), B(2:5,2:8));
-%! % This tests when padding is bigger than data
-%! assert(padarray(A,[5,10],'circular','both'), B(2:13,3:25));
-
-% Test replicate padding
-%!test
-%! A=[1,2;3,4];
-%! B=kron(A,ones(10,5));
-%! assert(padarray(A,[9,4],'replicate','pre'), B(1:11,1:6));
-%! assert(padarray(A,[9,4],'replicate','post'), B(10:20,5:10));
-%! assert(padarray(A,[9,4],'replicate','both'), B);
-
-% Test symmetric padding
-%!test
-%! A=[1:3;4:6];
-%! HA=[3:-1:1;6:-1:4];
-%! VA=[4:6;1:3];
-%! VHA=[6:-1:4;3:-1:1];
-%! B=[VHA,VA,VHA; HA,A,HA; VHA,VA,VHA];
-%! assert(padarray(A,[1,2],'symmetric','pre'), B(2:4,2:6));
-%! assert(padarray(A,[1,2],'symmetric','post'), B(3:5,4:8));
-%! assert(padarray(A,[1,2],'symmetric','both'), B(2:5,2:8));
-
-%
+## Copyright (C) 2004 Josep Mones i Teixidor
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{B} = } padarray (@var{A},@var{padsize})
+## @deftypefnx {Function File} {@var{B} = } padarray (@var{A},@var{padsize},@var{padval})
+## @deftypefnx {Function File} {@var{B} = } padarray (@var{A},@var{padsize},@var{padval},@var{direction})
+## Pads an array in a configurable way.
+##
+## B = padarray(A,padsize) pads an array @var{A} with zeros, where
+## @var{padsize} defines the amount of padding to add in each dimension
+## (it must be a vector of positive integers). 
+##
+## Each component of @var{padsize} defines the number of elements of
+## padding that will be added in the corresponding dimension. For
+## instance, [4,5] adds 4 elements of padding in first dimension (vertical)
+## and 5 in second dimension (horizontal).
+##
+## B = padarray(A,padsize,padval) pads @var{A} using the value specified
+## by @var{padval}. @var{padval} can be a scalar or a string. Possible
+## values are:
+## @table @code
+## @item 0
+## Pads with 0 as described above. This is the default behaviour.
+## @item scalar
+## Pads using @var{padval} as a padding value.
+## @item 'circular'
+## Pads with a circular repetition of elements in @var{A} (similar to
+## tiling @var{A}).
+## @item 'replicate'
+## Pads 'replicating' values of @var{A} which are at the border of the
+## array.
+## @item 'symmetric'
+## Pads with a mirror reflection of @var{A}.
+## @end table
+##
+## B = padarray(A,padsize,padval,direction) pads @var{A} defining the
+## direction of the pad. Possible values are:
+## @table @code
+## @item 'both'
+## For each dimension it pads before the first element the number
+## of elements defined by @var{padsize} and the same number again after
+## the last element. This is the default value.
+## @item 'pre'
+## For each dimension it pads before the first element the number of
+## elements defined by @var{padsize}.
+## @item 'post'
+## For each dimension it pads after the last element the number of
+## elements defined by @var{padsize}.
+## @end table
+## @end deftypefn
+
+## Author:  Josep Mones i Teixidor <jmones@puntbarra.com>
+
+function B = padarray(A, padsize, padval, direction)
+  # Check parameters
+  if (nargin<2 || nargin>4)
+    usage ("B = padarray(A, padsize [, padval] [, direction])");
+  endif
+  if (nargin<3)
+    padval=0;
+  endif
+  if (nargin<4)
+    direction='both';
+  endif
+
+  if (!isvector(padsize) || any(padsize<0))
+    error("padarray: padsize must be a vector of positive integers.");
+  endif
+
+  # Check direction
+  pre=false;
+  post=false;
+  switch(direction)
+    case('pre')
+      pre=true;
+    case('post')
+      post=true;
+    case('both')
+      post=true;
+      pre=true;
+    otherwise
+      error ("padarray: direction possible values are: 'pre', 'post' and 'both'");
+  endswitch
+  
+  
+  B=A;
+  dim=1;
+  for s=padsize
+    if (s>0)
+      # padding in this dimension was requested
+      ds=size(B);
+      ds=[ds, ones(1,dim-length(ds))]; # data size
+      ps=ds;
+      ps(dim)=s;		       # padding size
+
+      if (isstr(padval))
+	# Init a "index all" cell array. All cases need it.
+	idx=cell();
+	for i=1:length(ds)
+	  idx{i}=1:ds(i);
+	endfor
+
+	switch(padval)
+	  case('circular')
+	    complete=0;
+	    D=B;
+	    if (ps(dim)>ds(dim))
+	      complete=floor(ps(dim)/ds(dim));
+	      ps(dim)=rem(ps(dim),ds(dim));
+	    endif
+	    if (pre)
+	      for i=1:complete
+		B=cat(dim,D,B);
+	      endfor
+	      idxt=idx;
+	      idxt{dim}=ds(dim)-ps(dim)+1:ds(dim);
+	      B=cat(dim,D(idxt{:}),B);
+	    endif
+	    if (post)
+	      for i=1:complete
+		B=cat(dim,B,D);
+	      endfor
+	      idxt=idx;
+	      idxt{dim}=1:ps(dim);
+	      B=cat(dim,B,D(idxt{:}));
+	    endif
+	    # end circular case
+
+	  case('replicate')
+	    if (pre)
+	      idxt=idx;
+	      idxt{dim}=1;
+	      pad=B(idxt{:});
+	      # can we do this without the loop?	
+	      for i=1:s
+		B=cat(dim,pad,B);
+	      endfor
+	    endif
+	    if (post)
+	      idxt=idx;
+	      idxt{dim}=size(B,dim);
+	      pad=B(idxt{:});
+	      for i=1:s
+		B=cat(dim,B,pad);
+	      endfor
+	    endif
+	    # end replicate case
+	
+	  case('symmetric')
+	    if (ps(dim)>ds(dim))
+	      error("padarray: padding is longer than data using symmetric padding");
+	    endif
+	    if (pre)
+	      idxt=idx;
+	      idxt{dim}=ps(dim):-1:1;
+	      B=cat(dim,B(idxt{:}),B);
+	    endif
+	    if (post)
+	      idxt=idx;
+	      sbd=size(B,dim);
+	      idxt{dim}=sbd:-1:sbd-ps(dim)+1;
+	      B=cat(dim,B,B(idxt{:}));
+	    endif
+	    # end symmetric case
+
+	  otherwise
+	    error("padarray: invalid string in padval parameter.");
+
+	endswitch
+	# end cases where padval is a string
+
+      elseif (isscalar(padval))
+	# Handle fixed value padding
+	if (padval==0)
+	  pad=zeros(ps);
+	else
+	  pad=padval*ones(ps);
+	endif
+	if(pre&&post)
+	  # check if this is not quicker than just 2 calls (one for each)
+	  B=cat(dim,pad,B,pad);
+	elseif(pre)
+	  B=cat(dim,pad,B);
+	elseif(post)
+	  B=cat(dim,B,pad);
+	endif
+      else
+	error ("padarray: padval can only be a scalar or a string.");
+      endif
+    endif
+    dim+=1;
+  endfor
+endfunction
+
+%!demo
+%! padarray([1,2,3;4,5,6],[2,1])
+%! % pads [1,2,3;4,5,6] with a whole border of 2 rows and 1 columns of 0
+
+%!demo
+%! padarray([1,2,3;4,5,6],[2,1],5)
+%! % pads [1,2,3;4,5,6] with a whole border of 2 rows and 1 columns of 5
+
+%!demo
+%! padarray([1,2,3;4,5,6],[2,1],0,'pre')
+%! % pads [1,2,3;4,5,6] with a left and top border of 2 rows and 1 columns of 0
+
+%!demo
+%! padarray([1,2,3;4,5,6],[2,1],'circular')
+%! % pads [1,2,3;4,5,6] with a whole 'circular' border of 2 rows and 1 columns
+%! % border 'repeats' data as if we tiled blocks of data
+
+%!demo
+%! padarray([1,2,3;4,5,6],[2,1],'replicate')
+%! % pads [1,2,3;4,5,6] with a whole border of 2 rows and 1 columns which
+%! % 'replicates' edge data
+
+%!demo
+%! padarray([1,2,3;4,5,6],[2,1],'symmetric')
+%! % pads [1,2,3;4,5,6] with a whole border of 2 rows and 1 columns which
+%! % is symmetric to the data on the edge 
+
+% Test default padval and direction
+%!assert(padarray([1;2],[1]), [0;1;2;0]);
+%!assert(padarray([3,4],[0,2]), [0,0,3,4,0,0]);
+%!assert(padarray([1,2,3;4,5,6],[1,2]), \
+%!      [zeros(1,7);0,0,1,2,3,0,0;0,0,4,5,6,0,0;zeros(1,7)]);
+
+% This segfaults because of cat (uncomment when
+% cat(3,eye(2),eye(2)) works)
+%! %assert(padarray([1,2,3;4,5,6],[3,2,1]), cat(3, 			\
+%! %	zeros(7,7),							\
+%! %	[zeros(3,7); [zeros(2,2), [1,2,3;4,5,6], zeros(2,2)]; zeros(3,7)], \
+%! %	zeros(7,7))); 
+
+% Test if default param are ok
+%!assert(padarray([1,2],[4,5])==padarray([1,2],[4,5],0));
+%!assert(padarray([1,2],[4,5])==padarray([1,2],[4,5],0,'both'));
+
+% Test literal padval
+%!assert(padarray([1;2],[1],i), [i;1;2;i]);
+
+% Test directions (horizontal)
+%!assert(padarray([1;2],[1],i,'pre'), [i;1;2]);
+%!assert(padarray([1;2],[1],i,'post'), [1;2;i]);
+%!assert(padarray([1;2],[1],i,'both'), [i;1;2;i]);
+
+% Test directions (vertical)
+%!assert(padarray([1,2],[0,1],i,'pre'), [i,1,2]);
+%!assert(padarray([1,2],[0,1],i,'post'), [1,2,i]);
+%!assert(padarray([1,2],[0,1],i,'both'), [i,1,2,i]);
+
+% Test circular padding
+%!test
+%! A=[1,2,3;4,5,6];
+%! B=repmat(A,7,9);
+%! assert(padarray(A,[1,2],'circular','pre'), B(2:4,2:6));
+%! assert(padarray(A,[1,2],'circular','post'), B(3:5,4:8));
+%! assert(padarray(A,[1,2],'circular','both'), B(2:5,2:8));
+%! % This tests when padding is bigger than data
+%! assert(padarray(A,[5,10],'circular','both'), B(2:13,3:25));
+
+% Test replicate padding
+%!test
+%! A=[1,2;3,4];
+%! B=kron(A,ones(10,5));
+%! assert(padarray(A,[9,4],'replicate','pre'), B(1:11,1:6));
+%! assert(padarray(A,[9,4],'replicate','post'), B(10:20,5:10));
+%! assert(padarray(A,[9,4],'replicate','both'), B);
+
+% Test symmetric padding
+%!test
+%! A=[1:3;4:6];
+%! HA=[3:-1:1;6:-1:4];
+%! VA=[4:6;1:3];
+%! VHA=[6:-1:4;3:-1:1];
+%! B=[VHA,VA,VHA; HA,A,HA; VHA,VA,VHA];
+%! assert(padarray(A,[1,2],'symmetric','pre'), B(2:4,2:6));
+%! assert(padarray(A,[1,2],'symmetric','post'), B(3:5,4:8));
+%! assert(padarray(A,[1,2],'symmetric','both'), B(2:5,2:8));
+
+%
 % $Log$
+% Revision 1.2  2004/08/11 15:04:59  pkienzle
+% Convert dos line endings to unix line endings
+%
 % Revision 1.1  2004/08/08 21:20:25  jmones
 % uintlut and padarray functions added
-%
-%
+%
+%
--- a/main/image/roicolor.m	Wed Aug 11 03:06:12 2004 +0000
+++ b/main/image/roicolor.m	Wed Aug 11 15:04:59 2004 +0000
@@ -1,68 +1,71 @@
-## Copyright (C) 2004 Josep Mones i Teixidor
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{BW} = } roicolor (@var{A},@var{low},@var{high})
-## @deftypefnx {Function File} {@var{BW} = } roicolor (@var{A},@var{v})
-## Select a Region Of Interest of an image based on color.
-##
-## BW = roicolor(A,low,high) selects a region of interest (ROI) of an
-## image @var{A} returning a black and white image in a logical array (1 for
-## pixels inside ROI and 0 outside ROI), which is formed by all pixels
-## whose values lie within the colormap range specified by [@var{low}
-## @var{high}].
-##
-## BW = roicolor(A,v) selects a region of interest (ROI) formed by all
-## pixels that match values in @var{v}.
-## @end deftypefn
-
-## Author:  Josep Mones i Teixidor <jmones@puntbarra.com>
-
-function BW = roicolor(A, p1, p2)
-  if (nargin < 2 || nargin > 3)
-    usage("BW = roicolor(A, low, high), BW = roicolor(A, v)");
-  endif
-
-  if (nargin == 2)
-    if (!isvector(p1))
-      error("BW = roicolor(A, v): v should be a vector.");
-    endif
-    BW=logical(zeros(size(A)));
-    for c=p1
-      BW|=(A==c);
-    endfor
-  elseif (nargin==3)
-    if (!isscalar(p1) || !isscalar(p2))
-      error("BW = roicolor(A, low, high): low and high must be scalars.");
-    endif
-    BW=logical((A>=p1)&(A<=p2));
-  endif
-endfunction
-
-%!demo
-%! roicolor([1:10],2,4);
-%! % Returns '1' where input values are between 2 and 4 (both included).
-
-%!assert(roicolor([1:10],2,4),[0,1,1,1,zeros(1,6)]);
-%!assert(roicolor([1,2;3,4],3,3),[0,0;1,0]);
-%!assert(roicolor([1,2;3,4],[1,4]),[1,0;0,1]);
-
-%
+## Copyright (C) 2004 Josep Mones i Teixidor
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{BW} = } roicolor (@var{A},@var{low},@var{high})
+## @deftypefnx {Function File} {@var{BW} = } roicolor (@var{A},@var{v})
+## Select a Region Of Interest of an image based on color.
+##
+## BW = roicolor(A,low,high) selects a region of interest (ROI) of an
+## image @var{A} returning a black and white image in a logical array (1 for
+## pixels inside ROI and 0 outside ROI), which is formed by all pixels
+## whose values lie within the colormap range specified by [@var{low}
+## @var{high}].
+##
+## BW = roicolor(A,v) selects a region of interest (ROI) formed by all
+## pixels that match values in @var{v}.
+## @end deftypefn
+
+## Author:  Josep Mones i Teixidor <jmones@puntbarra.com>
+
+function BW = roicolor(A, p1, p2)
+  if (nargin < 2 || nargin > 3)
+    usage("BW = roicolor(A, low, high), BW = roicolor(A, v)");
+  endif
+
+  if (nargin == 2)
+    if (!isvector(p1))
+      error("BW = roicolor(A, v): v should be a vector.");
+    endif
+    BW=logical(zeros(size(A)));
+    for c=p1
+      BW|=(A==c);
+    endfor
+  elseif (nargin==3)
+    if (!isscalar(p1) || !isscalar(p2))
+      error("BW = roicolor(A, low, high): low and high must be scalars.");
+    endif
+    BW=logical((A>=p1)&(A<=p2));
+  endif
+endfunction
+
+%!demo
+%! roicolor([1:10],2,4);
+%! % Returns '1' where input values are between 2 and 4 (both included).
+
+%!assert(roicolor([1:10],2,4),[0,1,1,1,zeros(1,6)]);
+%!assert(roicolor([1,2;3,4],3,3),[0,0;1,0]);
+%!assert(roicolor([1,2;3,4],[1,4]),[1,0;0,1]);
+
+%
 % $Log$
+% Revision 1.2  2004/08/11 15:04:59  pkienzle
+% Convert dos line endings to unix line endings
+%
 % Revision 1.1  2004/08/08 21:02:44  jmones
 % Add roicolor function (selects ROI based on color)
-%
+%
 %
\ No newline at end of file
--- a/main/image/uintlut.m	Wed Aug 11 03:06:12 2004 +0000
+++ b/main/image/uintlut.m	Wed Aug 11 15:04:59 2004 +0000
@@ -1,54 +1,57 @@
-## Copyright (C) 2004 Josep Mones i Teixidor
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-## -*- texinfo -*-
-## @deftypefn {Function File} {@var{B} = } uintlut (@var{A},@var{LUT})
-## Computes matrix B by using A as an index to lookup table LUT.
-##
-## B = uintlut(A, LUT) calculates a matrix B by using @var{LUT} as a
-## lookup table indexed by values in @var{A}.
-## 
-## B class is the same as @var{LUT}. 
-## @end deftypefn
-
-## Author:  Josep Mones i Teixidor <jmones@puntbarra.com>
-
-function B = uintlut(A, LUT)
-  if (nargin != 2)
-    usage("B = uintlut(A, LUT)");
-  endif
-
-  ## We convert indexing array A to double since even CVS version of
-  ## Octave is unable to use non-double arrays as indexing types. This
-  ## won't be needed in the future eventually.
-  B=LUT(double(A));
-endfunction
-
-%!demo
-%! uintlut(uint8([1,2,3,4]),uint8([255:-1:0]));
-%! % Returns a uint8 array [255,254,253,252]
-
-%!assert(uintlut(uint8([1,2,3,4]),uint8([255:-1:0])), uint8([255:-1:252]));
-%!assert(uintlut(uint16([1,2,3,4]),uint16([255:-1:0])), uint16([255:-1:252]));
-%!assert(uintlut(uint32([1,2,3,4]),uint32([255:-1:0])), uint32([255:-1:252]));
-%!assert(uintlut(uint64([1,2,3,4]),uint64([255:-1:0])), uint64([255:-1:252]));
-
-%
+## Copyright (C) 2004 Josep Mones i Teixidor
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {@var{B} = } uintlut (@var{A},@var{LUT})
+## Computes matrix B by using A as an index to lookup table LUT.
+##
+## B = uintlut(A, LUT) calculates a matrix B by using @var{LUT} as a
+## lookup table indexed by values in @var{A}.
+## 
+## B class is the same as @var{LUT}. 
+## @end deftypefn
+
+## Author:  Josep Mones i Teixidor <jmones@puntbarra.com>
+
+function B = uintlut(A, LUT)
+  if (nargin != 2)
+    usage("B = uintlut(A, LUT)");
+  endif
+
+  ## We convert indexing array A to double since even CVS version of
+  ## Octave is unable to use non-double arrays as indexing types. This
+  ## won't be needed in the future eventually.
+  B=LUT(double(A));
+endfunction
+
+%!demo
+%! uintlut(uint8([1,2,3,4]),uint8([255:-1:0]));
+%! % Returns a uint8 array [255,254,253,252]
+
+%!assert(uintlut(uint8([1,2,3,4]),uint8([255:-1:0])), uint8([255:-1:252]));
+%!assert(uintlut(uint16([1,2,3,4]),uint16([255:-1:0])), uint16([255:-1:252]));
+%!assert(uintlut(uint32([1,2,3,4]),uint32([255:-1:0])), uint32([255:-1:252]));
+%!assert(uintlut(uint64([1,2,3,4]),uint64([255:-1:0])), uint64([255:-1:252]));
+
+%
 % $Log$
+% Revision 1.2  2004/08/11 15:04:59  pkienzle
+% Convert dos line endings to unix line endings
+%
 % Revision 1.1  2004/08/08 21:20:25  jmones
 % uintlut and padarray functions added
-%
-%
+%
+%