function [bild]=linBild(Bild)
%funktion linearisiert Farbraum über definierte Farbpunkte F und normiert
%Bild zwischen 0 und 1
%8 definierte Farben

%% Bild öffnen, normieren und r,g,b auslesen

bild = double(Bild)./255;
%Bild in double umwandeln und normieren
%figure,image(bild)
s = size(bild);
%Größe des Bildes
bild = reshape(bild,s(1)*s(2),1,3);
%Ordnet alle werte in einer 1x3-Matrix an
r = bild(:,:,1); % red
g = bild(:,:,2); % green
b = bild(:,:,3); % blue

%% Farbvektoren festlegen

P=[r g b];
% alle gestreuten Farbwerte in einer m x 3-Matrix
Sp=size(P);
F =[0 0 0; %schwarz
    0 0 0.5; %dunkel blau
    0 1 1; %cyan
    0 0.5 0; %dunkel grün
    0 0.8 0; %grün
    0.5 0.5 0; %dunkel gelb
    1 1 0; %gelb
    1 0 1; %magenta
    1 1 1]; %weiss
 % alle definierten Punkte
 
%% Werte berechnen

for x=1:7
    r0=F(x,1:3);
    r1=F(x+1,1:3);
    for y=1:Sp(1);
        d=(norm(cross(r1,(r0-P(y,1:3)))/(norm(r1)))); %Abstand berechnen
        if d<=0.4;
        l = ((r1-r0).*(P(y,1:3)-r0))/(norm(r1-r0)*norm(r1)); %lambda für geradengleichung berechnen
        P(y,1:3) = r0+l.*(r1-r0); %neuen Farbwert berechnen+zuweisen
        end
    end
end

%% Bild wieder herstellen
bild=reshape(P,s(1),s(2),s(3));
% ordnet werte in der ursprünglichen Bildmatrix an
bild=uint8(bild.*255);
%ursprümgliches format
end

