仅在RGB或HSV图像中增加黄色饱和度(Matlab)

仅在RGB或HSV图像中增加黄色饱和度(Matlab),matlab,image-processing,colors,computer-vision,hsv,Matlab,Image Processing,Colors,Computer Vision,Hsv,我有一个形象。我想有选择地将图像中黄色的饱和度增加到最大。在RGB或HSV图像空间中是如何做到这一点的?谢谢 这需要在HSV(色调饱和度值)颜色空间中完成 如果你有在HSV的图像,这是非常容易的(否则转换为HSV)。H是唯一提供颜色信息的变量,如果您查看的wikipedia页面,您会注意到它们都在45到60度之间。因此,请拍摄HSV图像,选择该范围内的H,并增加这些值的S(饱和度) 在Matlab中: %Read image imghsv=imread('http://7-themes.com/

我有一个形象。我想有选择地将图像中黄色的饱和度增加到最大。在RGB或HSV图像空间中是如何做到这一点的?谢谢

这需要在HSV(色调饱和度值)颜色空间中完成

如果你有在HSV的图像,这是非常容易的(否则转换为HSV)。H是唯一提供颜色信息的变量,如果您查看的wikipedia页面,您会注意到它们都在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);
%读取图像
imghsv=imread('http://7-themes.com/data_images/out/34/6884934-yellow-flowers.jpg');
imghsv=rgb2hsv(IM2倍频(imghsv));
%挑黄色

yellowIndex=repmat((imghsv(:,:,1)>45/360)和(imghsv(:,:,1)这需要在HSV(色调饱和度值)颜色空间中完成

如果你有HSV格式的图像,这很容易(否则将其转换为HSV)。H是唯一提供颜色信息的变量,如果你查看的wikipedia页面,你会注意到它们都在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);
%读取图像
imghsv=imread('http://7-themes.com/data_images/out/34/6884934-yellow-flowers.jpg');
imghsv=rgb2hsv(IM2倍频(imghsv));
%挑黄色

yellowIndex=repmat((imghsv(:,:,1)>45/360)和(imghsv(:,:,1)这需要在HSV(色调饱和度值)颜色空间中完成

如果你有HSV格式的图像,这很容易(否则将其转换为HSV)。H是唯一提供颜色信息的变量,如果你查看的wikipedia页面,你会注意到它们都在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);
%读取图像
imghsv=imread('http://7-themes.com/data_images/out/34/6884934-yellow-flowers.jpg');
imghsv=rgb2hsv(IM2倍频(imghsv));
%挑黄色

yellowIndex=repmat((imghsv(:,:,1)>45/360)和(imghsv(:,:,1)这需要在HSV(色调饱和度值)颜色空间中完成

如果你有HSV格式的图像,这很容易(否则将其转换为HSV)。H是唯一提供颜色信息的变量,如果你查看的wikipedia页面,你会注意到它们都在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);
%读取图像
imghsv=imread('http://7-themes.com/data_images/out/34/6884934-yellow-flowers.jpg');
imghsv=rgb2hsv(IM2倍频(imghsv));
%挑黄色

黄色指数=repmat((imghsv(:,:,1)>45/360)和(imghsv(:,:,1)您列出的原始代码不幸地充满了错误。我现在已经解决了它。谢谢您的帮助。您列出的原始代码不幸地充满了错误。我现在已经解决了它。谢谢您的帮助。您列出的原始代码不幸地充满了错误。我现在已经解决了它。谢谢您的帮助帮助。很不幸,您列出的原始代码充满了错误。我现在已经解决了它。谢谢您的帮助。