%
%  modifyColor erzuegt aus einem farbigen Bild ein eingefärbtes, 
%    monochromes Bild. Der Farbdialog uisetcolor wählt eine Farbe, 
%    mit der das Bild eingefärbt wird. 
%    Die Grauwerte zu den Bild-Daten werden berechnet und 
%    diese werden proportional zu der ausgewählten Farbe modifiziert.
%
function modifyColor() 

   % Bild-Datei auswählen
   [f,p] = uigetfile( '*.bmp', 'Bild wählen' );
   if( f == 0 )
      return;
   end
   
   % Dateinamen aus Pfad p und File-Namen f zusammenbauen
   datei = [p,f];

   % Bild-Datei laden 
   A = imread( datei );  
   
   % erst mal ausgeben 
   image( A )            
   axis image      
   
   % Farbe auswählen
   col = uisetcolor();   
   
   % Grauwerte berechnen 
   D = double( A ); % in double wandeln    
   % aus den RGB-Farben den Grauwert berechnen
   GrauWert(:,:) = uint8( ( D(:,:,1) + D(:,:,2) + D(:,:,3) ) / 3.0 );
   
   % Farbe proportional ändern
   B(:,:,1) = GrauWert * col(1);  % Rot-Wert
   B(:,:,2) = GrauWert * col(2);  % Grün-Wert
   B(:,:,3) = GrauWert * col(3);  % Blau-Wert
   
   % Bild anzeigen  
   image( B )            
   axis image           
   