How invert only one colour in RGB image?
4 ビュー (過去 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!

