MATLAB Answers

How do i scan pixel from an rgb image and then if red value is higher than 200 show red only and if its lower = all 3 colors = 0

17 views (last 30 days)

Accepted Answer

David Fletcher
David Fletcher on 22 May 2021
Edited: David Fletcher on 22 May 2021
May not be the best answer - I don't do much image manipulation work
%load and display image
imageData=imread('test.jpeg');
subplot(2,1,1)
imshow(imageData);
%Create mask for red colour data >200
redMask=imageData(:,:,1)>200;
%Apply mask to red channel
red=imageData(:,:,1);
red=red.*cast(redMask,'like',imageData);
%Clear colour data from all channels
imageData=imageData*0;
%Replace red channel with the masked data
imageData(:,:,1)=red;
%Show image with red channel mask mask
subplot(2,1,2)
imshow(imageData);
  10 Comments

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 22 May 2021
Try this:
% Find where red value is more than 200.
mask = rgbImage(:, :, 1) > 200;
% Mask the image using bsxfun() function to multiply the mask by each channel individually.
maskedRgbImage = bsxfun(@times, rgbImage, cast(mask, 'like', rgbImage));
  6 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!