Coloring pixels with a specific color

Is it possible to create an image (like the original) in which only the desired pixels are colored?
For example, I want to color white only the pixels with the numbers 25 to 27 (present inside 'grayLevel'). Any ideas?
rgb = imread('example.jpg');
%% Matrix of pixels
Number_Of_Rows = height(rgb);
Number_Of_Columns = width(rgb);
grayLevel = zeros(Number_Of_Rows,Number_Of_Columns);
for Row = 1:Number_Of_Rows
for Column = 1:Number_Of_Columns
grayLevel(Row,Column) = rgb(Row, Column);
end
end

 Accepted Answer

You need to somehow get the gray scale image from the RGB image though, maybe like
grayImage = rgb2gray(rgbImage);
Then you can use imoverlay
mask = (grayImage >= 25) & (grayImage <= 27);
rgbImage = imoverlay(grayImage, mask, 'Color', 'w');

8 Comments

Thank you for your reply. How can I create mask in case I want to use values inside a vector?
For example: v = [25; 26; 27; 30]
mask = (grayImage == v(1)) | (grayImage == v(2)) | (grayImage == v(3)) | (grayImage == v(4));
rgbImage = imoverlay(grayImage, mask, 'Color', 'w');
Is there any way to compact the line with mask?
You could put it into a loop
mask = grayImage == v(1);
for k = 2 : length(v)
mask = mask | (grayImage == v(k));
end
rgbImage = imoverlay(grayImage, mask, 'Color', 'w');
Thanks for the answer @Image Analyst! Whereas, if I have a V matrix of the type 3x2 where each row represents the coordinate of the pixel I want to color white? How can I do that?
Try this
for k = 1 : size(V, 1)
row = V(k, 1);
column = V(k, 2);
grayImage(row, column) = 255; % Or 65535 for uint16 images.
end
And how can I visualize them? Using for example 'imoverlay'?
No, if you have a gray scale image and you just want white, not a "color", then you don't need imoverlay. You can just use imshow:
imshow(grayImage, []);

Sign in to comment.

More Answers (0)

Categories

Find more on Images in Help Center and File Exchange

Products

Release

R2021b

Community Treasure Hunt

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

Start Hunting!