
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
조회 수: 11(최근 30일)
표시 이전 댓글

댓글 수: 0
채택된 답변
David Fletcher
2021년 5월 22일
편집: David Fletcher
2021년 5월 22일
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);

추가 답변(1개)
Image Analyst
2021년 5월 22일
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));
참고 항목
범주
Find more on Colormaps in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!