clc;
originalImage = imread('coloredChips.png');
[rows, columns, channels] = size(originalImage);
if channels~=3
error('the image needs to be RGB')
end
subplot(2,1,1);
imshow(originalImage);
maskR = originalImage(:,:,1) >= 173 & originalImage(:,:,2) < 68 & (10 < originalImage(:,:,3) & originalImage(:,:,3) < 200);
maskG = originalImage(:,:,1) < 60 & originalImage(:,:,2) > 100 & originalImage(:,:,3) < 150;
maskB = originalImage(:,:,1) < 20 & (30 < originalImage(:,:,2) & originalImage(:,:,2) < 100) & originalImage(:,:,3) > 150;
maskY = originalImage(:,:,1) > 200 & originalImage(:,:,2) > 200 & originalImage(:,:,3) < 160;
maskO = (originalImage(:,:,1) > 120 & originalImage(:,:,1) < 255) & (originalImage(:,:,2) < 55 & originalImage(:,:,3) < 20) | (originalImage(:,:,2) > 50 & originalImage(:,:,2) < 122) & originalImage(:,:,3) < 80;
black = [0 0 0];
newImage = originalImage;
color = input('Enter color to remove: ', 's');
while true
if (lower(color) == "red")
selectedmask = repmat(maskR,[1 1 3]);
break
elseif (lower(color) == "green")
selectedmask = repmat(maskG,[1 1 3]);
break
elseif (lower(color) == "blue")
selectedmask = repmat(maskB,[1 1 3]);
break
elseif (lower(color) == "yellow")
selectedmask = repmat(maskY,[1 1 3]);
break
elseif (lower(color) == "orange")
selectedmask = repmat(maskMagenta,[1 1 3]);
break
else
disp("Wrong color or Color not found.");
break
end
end
newImage(selectedmask) = 0;
newImage = newImage + uint8(selectedmask.*permute(black,[1 3 2]));
subplot(2,1,2);
imshow(newImage);