对于RGB来说,增加亮度是直接对三个颜色维做变换,而对于HSV来说,增加亮度只需要在V这一维做变换即可。这两种方法得出来的结果并不相同,效果图如下所示。
代码如下:
srcImage=imread('lula.jpg');
subplot(221)
imshow(srcImage)
title("原图")
hsvImage=rgb2hsv(srcImage);%转hsv
hsvImage(:,:,3)=hsvImage(:,:,3).*0.6;%变暗0.6
darkImage=hsv2rgb(hsvImage);%转rgb
subplot(222)
imshow(darkImage)
title("亮度变暗图")
RGBimage=imadjust(darkImage,[0,0.6],[0,1],0.5);%将0到0.6映射到0-1,映射关系为伽马,参数为0.5,会偏亮,gamma=1为线性映射
subplot(223)
imshow(RGBimage)%RGB变亮
title("RGB伽马亮度增强")
hsvImage(:,:,3)=imadjust(hsvImage(:,:,3),[0,0.6],[0,1],0.5);%将0到0.6映射到0-1,映射关系为伽马,参数为0.5,会偏亮,gamma=1为线性映射
brightImage=hsv2rgb(hsvImage);%转rgb
subplot(224)
imshow(brightImage)%HSV变亮
title("HSV伽马亮度增强")