Ich bin nicht sicher, ob die Farbintensität/Lichtintensität Teil, aber ich denke, das ist die Arbeit machen soll:
intense = [0 2 3 4;1 3 4 6;2 6 7 8];
intense = intense./100; %//Convert to percentage
RGBmat = zeros([size(intense), 3]); %//Create blank RGB map
%//set Col1 to red
RGBmat (:,1,1) = 255;
%//set Col2 to green
RGBmat(:,2,2) = 255;
%//set Col3 to Blue
RGBmat(:,3,3) = 255;
%//multiply intensity
Res = RGBmat .* repmat(intense,[1,1,3]); %//I am not sure about adjusting the intensity of each pixel.
Nach diesem Beitrag Adjusting image intensity values
es sollte Siehst du vielleicht so aus?
J = (RGBmat ./ 255).^ repmat(intense,[1,1,3])*255 %//This is assuming that intensity matrix is from 0 to 255 not 1 to 100, you will have to normalize it I guess.
imshow(Res,'InitialMagnification','fit')
imshow(J,'InitialMagnification','fit')
Beachten Sie, wie 100 Intensität nicht weiß ist, aber die Standard-schwarz, das ist, weil, wenn ich RGBmat eingestellt auf Standardwert, I Nullen verwendet (die schwarz bedeutet), wenn Sie es wollen, weiß zu sein, Sie muss RGBmat auf Nullen setzen (...). * 255; Dies bedeutet jedoch, wenn Sie die Spalten auf Rot, Grün und Blau einstellen, müssen Sie die anderen Kanäle auf Null setzen:
Also für rot, anstatt rot auf 255; Sie müssen stattdessen blau und grün auf 0 setzen.
======== Einfüg.Nummer aktualisiertem Inhalt ============
Angenommen, Ihre Intensität Matrix (oder Ihr Bild Graustufen) ist I
sollten Sie erstes Prozent wandelt es in:
Ipercent = double(I)./255;
nächsten in ein 3D-Bild RGB machen -
IRGB = repmat(Ipercent,[1,1,3]);
jetzt können Sie multip ly Ihre Farbmaskierung hinein:
%This line will multiply your first 1:100 column with a red mask
IRGB(:,1:100,1) = uint8(IRGB(:,1:100,1).*255);
Der Rest ist nur die Farben der einzelnen Abschnitte anpassen.
Ihre Intensität liegt zwischen 0 und 100? Bedeutung 0 ist schwarz? – GameOfThrows
ja, 100 - weiß, 0 ist schwarz. graue Colormap – delkov