У меня есть образ. Я хочу выборочно увеличить насыщенность желтого цвета на изображении до максимума. Как это делается в пространстве изображений RGB или HSV? Спасибо.
Увеличьте насыщенность желтого цвета только в изображении RGB или HSV (Matlab)
comment
К сожалению, исходный код, который вы указали, был пронизан ошибками. Я теперь решил это, хотя. Спасибо за вашу помощь.
- person Chris Parry   schedule 30.09.2015
Ответы (1)
Это необходимо сделать в цветовом пространстве HSV (Hue Saturation Value).
Если у вас есть изображение в формате HSV, это очень просто (иначе конвертируйте его в HSV). H — единственная переменная, которая дает информацию о цвете, и если вы посмотрите страницу википедии Shades of Yellow, вы заметите, что все они находятся в диапазоне от 45 до 60 градусов. Итак, возьмите изображение HSV, выберите H в этом диапазоне и увеличьте S (насыщенность) этих значений.
В Матлабе:
%Read image
imghsv=imread('http://7-themes.com/data_images/out/34/6884934-yellow-flowers.jpg');
imghsv=rgb2hsv(im2double(imghsv));
%pick yellow
yellowIndex=repmat((imghsv(:,:,1)>45/360)&(imghsv(:,:,1)<60/360),[1 1 3]);
yellow=imghsv.*yellowIndex;
%Saturate it
moreSaturation=2;
yellowsaturated=yellow(:,:,2)*moreSaturation;
yellow(:,:,2)=yellowsaturated;
%put it back
newHsv=imghsv;
newHsv(yellowIndex)=yellow(yellowIndex);
результат:
Оригинал
Желтые пиксели
Насыщенный
person
Ander Biguri
schedule
26.09.2015