提高图像饱和度

4

我该如何在MATLAB中增加RGB图像的饱和度?我需要先将RGB数组转换为HSV数组吗?

1个回答

5

我认为最简单的方法肯定是将图像转换为HSV颜色空间,根据需要增加饱和度值,然后将其转换回RGB图像

hsvImage = rgb2hsv(rgbImage);  %# Convert the image to HSV space
hsvImage(:,:,2) = 1;           %# Maximize the saturation
rgbImage = hsv2rgb(hsvImage);  %# Convert the image back to RGB space

1
嗯,将其设置为1会留下许多随机的红色斑点(我认为是饱和度太高了),所以我改为将其乘以一个较小的值,使所有区域的饱和度都稍微降低,并且它们的饱和度相同,例如 hsvImage(:,:,2) = hsvImage(:,:,2)*1.5。感谢您的帮助 :) - Matt Le Fleur
2
@Phoen1xUK:我只是举了一个例子来修改饱和度平面,因为我不知道你具体想要应用什么样的增加。你在HSV图像中看到的红色斑块很可能是RGB图像中的白色或灰色区域(红、绿、蓝三种颜色的数量相等)。当转换为HSV时,这样的中性颜色通常被分配一个默认色调为0(即红色)。当饱和度从0增加到1时,这个默认色调就会变得明显起来。 - gnovice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接