Clear Filters
Clear Filters

How invert only one colour in RGB image?

5 views (last 30 days)
Hello!
I want to change background in my rgb image from black to white. How I can do it without inversing others colours?
  7 Comments
Pavel M
Pavel M on 4 Apr 2022
For the beginning i wanted to invert black to white.
For the second, after inverting i want to do numbers on scales x and y more clear

Sign in to comment.

Accepted Answer

DGM
DGM on 4 Apr 2022
The easy way to do this is L inversion. You can do this the hard way, or you can just use MIMT tools:
inpict = imread('scope.png');
outpict = imtweak(inpict,'hsl',[0 1 -1]); % invert L
imshow(outpict)
Of course yellow on white is hard to read, so desaturating might help.
inpict = imread('scope.png');
outpict = imtweak(inpict,'hsl',[0 0.7 -1]); % invert L, reduce S
imshow(outpict)
Otherwise, you could always try to mask off certain parts of the image and adjust them independently.
Imtweak() is part of MIMT, and is available at the link above.
  5 Comments
DGM
DGM on 5 Apr 2022
I'm assuming you're after the floating toolbar things. This is one example. I can't really provide an example of the mask generation, since I did that by manual selection. I attached the mask image.
inpict = imread('scope.png');
% mask created by manual selection using immask() in HSV
mk = imread('scopemask.png');
mk = imfill(mk,'holes'); % fill in holes
% adjust the whole image
outpict = imtweak(inpict,'hsl',[0 0.7 -1]); % invert L, reduce S
% but use the mask to revert the selected areas
outpict = replacepixels(inpict,outpict,mk);
imshow(outpict)
Pavel M
Pavel M on 5 Apr 2022
Edited: Pavel M on 5 Apr 2022
Nice! Thank you

Sign in to comment.

More Answers (0)

Categories

Find more on Convert Image Type in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!