How invert only one colour in RGB image?
6 次查看(过去 30 天)
显示 更早的评论
Hello!
I want to change background in my rgb image from black to white. How I can do it without inversing others colours?
采纳的回答
DGM
2022-4-4
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 个评论
DGM
2022-4-5
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)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Convert Image Type 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!