主要内容

转换RGB和HSV颜色空间

这个例子展示了如何通过将图像转换为HSV颜色空间来调整彩色图像的饱和度。然后,该示例显示合成图像的单独HSV彩色平面(色相、饱和度和值)。

转换RGB图像到HSV图像

将RGB图像读取到工作区中。显示图像。

RGB = imread (“peppers.png”);imshow (RGB)

图中包含一个轴对象。axis对象包含一个image类型的对象。

将图像转换为HSV颜色空间。

HSV = rgb2hsv (RGB);

处理HSV图像。这个例子通过将S通道乘以一个比例因子来增加图像的饱和度。

[h, s, v] = imsplit (HSV);saturationFactor = 2;s_sat = s * saturationFactor;HSV_sat =猫(3 h s_sat, v);

将处理过的HSV图像转换回RGB颜色空间。显示新的RGB图像。经过处理的图像的颜色更加鲜艳。

RGB_sat = hsv2rgb (HSV_sat);imshow (RGB_sat)

图中包含一个轴对象。axis对象包含一个image类型的对象。

仔细看看HSV颜色空间

为了更仔细地检查HSV颜色空间,创建一个合成的RGB图像。

RGB =重塑((64 1)*的重塑(飞机(64),1192),(64、64、3));

将合成的RGB图像转换为HSV颜色空间。

HSV = rgb2hsv (RGB);

将合成图像的HSV版本分解为其组成平面:色相、饱和度和值。

[h, s, v] = imsplit (HSV);

显示独立的HSV彩色平面与原始图像。

蒙太奇({h, s, v, RGB},“BorderSize”10“写成BackgroundColor”' w ');

图中包含一个轴对象。axis对象包含一个image类型的对象。

如上图中色调平面图像所示,色调值由高到低呈线性过渡。如果您将色调平面图像与原始图像进行比较,您可以看到深蓝的阴影值最高,深红的阴影值最低。(如前所述,在色调尺度的两端都有红色的值。为了避免混淆,示例图像只使用从色调范围开始的红色值。)

饱和度可以被认为是一种颜色的纯度。从饱和度平面图像中可以看出,饱和度最高的颜色值最高,用白色表示。在饱和度图像的中心,注意各种灰度。这些对应着一种混合的颜色;青色、绿色和黄色是真实颜色的混合物。值大致相当于亮度,你会注意到值平面最亮的区域对应于原始图像中最亮的颜色。