How can I generate whiteish images with this image? This code is for example.
Show older comments
A = im2double(imread('fruit.png'));
B = 1-((1-A).*(1-permute([1 0 0],[1 3 2])));
figure;
imshow(B)

2 Comments
Walter Roberson
on 13 Dec 2021
The above operation is a 'screen' blend with red. It does not create the output image shown.
This thread is a consequence of the examples here:
At the end, I gave a handful of examples for the "whiteish" case.
Answers (2)
Voss
on 13 Dec 2021
I don't know if this is what you have in mind, but maybe something like this:
whiteness = 0.5;
A = im2double(imread('fruit.png'));
B = mean(A,3).*ones(1,1,3)*(1-whiteness)+whiteness;
figure;
imshow(B)
Here, whiteness is a parameter for you to tune (between 0 and 1, inclusive) in order to achieve the desired "whiteish"-ness.
whiteness = 0; will give you the grey-scale version of the original image where each RBG channel is the average of all three RGB channels in the original image. whiteness = 1; will give you an image of all white.
Image Analyst
on 13 Dec 2021
You can make an image "whiter" by decreasing the saturation and increasing the value.
hsvImage = rgb2hsv(rgbImage);
[hImage, sImage, vImage] = imsplit(hsvImage);
sImage = someFactor1 * sImage; % someFactor1 < 1 to reduce vividness of color
vImage = someFactor2 * vImage; % someFactor2 > 1 to brighten the image
hsvImage = cat(3, himage, sImage, vImage);
rgbImage = hsv2rgb(hsvImage);
Categories
Find more on Image Arithmetic in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!