How to make an image take different RGB values?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Abdul Rahim Mohammad
le 10 Avr 2019
Commenté : Abdul Rahim Mohammad
le 11 Avr 2019
I have an image with NxMx3 uint8 colors but I want the colors of the image to be replaced with another array of 256x3(Each column corresponds to R,G,B values) colors. How can I map the values from the array to the image?
I was advised that I need to split the 3 channels and then map them independently
0 commentaires
Réponse acceptée
Jan
le 10 Avr 2019
Modifié(e) : Jan
le 10 Avr 2019
LUT = randi([0, 255], 256, 3, 'uint8'); % The look up table
Img = randi([0, 255], 640, 480, 3, 'uint8'); % The image
NewImg = cat(3, LUT(Img(:, :, 1) + 1, 1), ...
LUT(Img(:, :, 2) + 1, 2), ... % [EDITED, 3 ==> 2]
LUT(Img(:, :, 3) + 1, 3));
This replaces the original colors by the ones from the look up table by a simple indexing. See this example:
LUT = [2, 4, 8]
Img = [0, 1; 2, 1];
LUT(Img + 1)
9 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Image Preview and Device Configuration dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!