这需要在HSV(色相饱和度值)颜色空间中完成。
如果你有HSV中的图像,这是非常容易的(否则将其转换为HSV)。 H是唯一提供颜色信息的变量,如果您检查维基百科页面Shades of Yellow,您会注意到它们都在45到60度之间。因此,带上HSV图像,选择该范围内的H并增加这些值的S(饱和度)。
在Matlab中:
%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);
结果:
原始
黄色像素
饱和