MATLAB Answers

How to put or replace color in rgb/greyscale picture

11 views (last 30 days)
Need some assistance here
Anyone knows how to put the blue color as presented in these pictures below?
Seems like the bubbles blobs (White/grey) has the same rgb value to the other non-bubble area. Black blobs are pores.


Image Analyst
Image Analyst on 29 Feb 2020
Can you explain in words, what properties the blue regions of the gray surround have that the gray regions don't? And why do you want the blue but don't want the gray?
Ravin Rayeok
Ravin Rayeok on 29 Feb 2020
Sorry my question was not clear, may be I can change the picture to simplify.
So how to change color of the picture as following, from white to blue and yellow to green?
Its a picture of different liquid phase in a pore medium.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 29 Feb 2020
Try this:
rgbImage = imread('image.jpeg');
subplot(2, 1, 1);
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
% Get the yellow mask
yellowMask = redChannel > 128 & greenChannel > 128;
% Get the white mask
whiteMask = redChannel > 128 & greenChannel > 128 & blueChannel > 128;
% Make yellow mask green
redChannel(yellowMask) = 0;
greenChannel(yellowMask) = 255;
blueChannel(yellowMask) = 0;
% Make the white mask blue
redChannel(whiteMask) = 0;
greenChannel(whiteMask) = 0;
blueChannel(whiteMask) = 255;
% Recombine separate color channels into a single, true color RGB image.
rgbImage2 = cat(3, redChannel, greenChannel, blueChannel);
subplot(2, 1, 2);

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!