How to change all the colours in the image to black

how to change all the colours in the image to black except the white colour in image?

 Accepted Answer

Try this:
imageData = imread([yourFile]);
% split R, G, B
imgR = imageData(:, :, 1);
imgG = imageData(:, :, 2);
imgB = imageData(:, :, 3);
% get linear index of all pixels with color not white
colIdx = (imgR < 1 | imgG < 1 | imgB < 1);
% change color to black
imgR(colIdx) = 0;
imgG(colIdx) = 0;
imgB(colIdx) = 0;
% write back to new image data or overwrite the origin imageData
newImage(:, :, 1) = imgR;
newImage(:, :, 2) = imgG;
newImage(:, :, 3) = imgB;

More Answers (1)

clc; clear all; close all;
I = imread('ceshi.png');
I2 = rgb2hsv(I);
s = mat2gray(I2(:,:,2));
bw = im2bw(s, 0.5);
figure; imshow(~bw)

Asked:

on 26 Jan 2021

Edited:

DGM
on 9 Mar 2023

Community Treasure Hunt

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

Start Hunting!