MATLAB: I want to change the black background of the image into white.

image processingImage Processing ToolboxleafMATLABshadow removal

rgbImage=imread('C:\Users\KeerthiDev\Desktop\tomato_dataset\Tomato_late_blight_water_mold\late130.jpg');
%figure,imshow(rgbImage, []);
rgbImage = imadjust(rgbImage,stretchlim(rgbImage),[]);
rgbImage = imreducehaze(rgbImage);
figure,imshow(rgbImage);
grayImage = rgb2gray(rgbImage);
figure,imshow(grayImage, []);
hFH = imfreehand();
binaryImage = hFH.createMask();
xy = hFH.getPosition;
blackMaskedImage = grayImage;
blackMaskedImage(~binaryImage) = 0;
maskedRgbImage = bsxfun(@times,rgbImage,cast(binaryImage, 'like',rgbImage));
figure,imshow(maskedRgbImage);
after runing this code to i got the image as shown below
I want to only change this black background to white color (without any other change.)

Best Answer

Try this:
rgbImage = imread('image.png');
subplot(2, 2, 1);
imshow(rgbImage);
mask = all(rgbImage == 0, 3);
% Take the largest blob
mask = bwareafilt(mask, 1);
subplot(2, 2, 2);
imshow(mask);
maskedRgbImage = rgbImage + uint8(255 * repmat(mask, [1, 1, 3]));
subplot(2, 2, 3);
imshow(maskedRgbImage);