function [CNNoRGB] = cnnmshow(varargin)

% function [Y] = cnnmshow(CNNoRGB,B,eop,cindex,...)
%
% CNNoRGB image has CNN (2D) or RGB (3D) type
% B is a binary picture map
% eop: edge or patch : 'e' or 'p'
% cindex is a color index between 1 and 24
%
%  $Id: cnnmshow.m,v 1.6 2004/05/14 10:28:53 hdaniel Exp $

C = ...   
[ ...
 255/255 255/255 0/255; ...  % yellow
 139/255 0/255 0/255; ...    % red
 255/255 0/255 0/255; ...    % light red
 148/255 0/255 211/255; ...  
 0/255 0/255 255/255; ...
 0/255 100/255 0/255; ...   
 222/255 184/255 135/255; ...
 0/255   255/255 255/255; ...
 0/255 0/255 139/255; ...  
 255/255 140/255 0/255; ...  
 
 189/255 183/255 107/255; ...    
 219/255 112/255 147/255; ...  
 255/255 0/255 0/255; ...  
 0/255 250/255 154/255; ...  
 154/255 205/255 50/255; ...  
 30/255 144/255 255/255; ...  
 219/255 112/255 147/255; ...  
 124/255 252/255 0/255; ...  
 0/255 250/255 154/255; ...  
 154/255 205/255 50/255; ...  
 
 222/255 184/255 135/255; ...
 64/255 224/255 208/255; ...  
 221/255 160/255 221/255; ...  
 244/255 164/255 96/255; ...  
 
%255/255 255/255 0/255; ...  
% 139/255 0/255 0/255; ...  
 205/255 92/255 92/255; ...  
 255/255 20/255 144/255; ...   
 72/255 61/255 139/255; ...  
 255/255 69/255 0/255; ...     
 218/255 165/255 32/255; ...   
% 222/255 184/255 135/255; ...
 0/255   255/255 255/255; ...

 % 0/255 0/255 139/255; ...  
% 0/255 100/255 0/255; ...  
% 255/255 140/255 0/255; ...  
% 189/255 183/255 107/255; ...
255/255 255/255 255/255 ...
];

%function [Y] = cnnmshow(CNNoRGB,B,eop,cindex)

if nargin > 3
    % eliminate singleton dimensions
    CNNoRGB = squeeze(varargin{1});
    
    for j = 0 : nargin/3-1
        
        if ndims(CNNoRGB) == 2 
            G = cnn2gray(CNNoRGB); 
            CNNoRGB(:,:,1) = G;
            CNNoRGB(:,:,2) = G;
            CNNoRGB(:,:,3) = G;
        end;
        
        if varargin{3+j*3} == 'e'
            B = grayslice(uint8(edge(squeeze(varargin{2+j*3}))),0.5); % eliminate singleton dimensions
        else    
            B = grayslice(squeeze(varargin{2+j*3}),0.5) ;% eliminate singleton dimensions
        end;
        
        [a b] = find(B>0);
        
        for i = 1 : size(a) 
            CNNoRGB(a(i),b(i),1) = C(varargin{4+j*3},1);
            CNNoRGB(a(i),b(i),2) = C(varargin{4+j*3},2);
            CNNoRGB(a(i),b(i),3) = C(varargin{4+j*3},3);
        end;
        
    end
    
    if nargout == 0 imshow(CNNoRGB); end
else
    error('There must be at least 4 input arguments!');
end