matlab之图像处理学习日记——在RGB和HSV颜色空间之间转换

在RGB和HSV颜色空间之间转换
本示例说明如何通过将彩色图像转换为HSV颜色空间来调整其饱和度。然后,该示例显示合成图像的单独的HSV颜色平面(色相,饱和度和值)。

将RGB图像转换为HSV图像
将RGB图像读入工作区。显示图像。
RGB = imread(‘peppers.png’);
imshow(RGB)
原始图像

将图像转换为HSV颜色空间。
HSV = rgb2hsv(RGB);
处理HSV图像。本示例通过将S通道乘以比例因子来增加图像的饱和度。
[h,s,v] = imsplit(HSV);
饱和度因子= 2;
s_sat = s * saturationFactor;
HSV_sat = cat(3,h,s_sat,v);
将已处理的HSV图像转换回RGB颜色空间。显示新的RGB图像。处理后的图像中的颜色更加鲜艳。
RGB_sat = hsv2rgb(HSV_sat);
imshow(RGB_sat)

仔细研究HSV色彩空间
为了更仔细地检查HSV颜色空间,请创建一个合成RGB图像。
RGB = reshape(ones(64,1)* reshape(jet(64),1,192),[64,64,3]);

将合成的RGB图像转换为HSV色彩空间。
HSV = rgb2hsv(RGB);

将合成图像的HSV版本划分为其组成平面:色相,饱和度和值。
[h,s,v] = imsplit(HSV);

显示带有原始图像的各个HSV彩色平面。
montage({h,s,v,RGB},“ BorderSize”,10,“ BackgroundColor”,‘w’);
色相平面图像

如上图中的色相平面图像所示,色相值从高到低呈线性过渡。如果将色相平面图像与原始图像进行比较,则可以看到深蓝色阴影的值最高,而深红色阴影的值最低。 (如前所述,在色相标度的两端都有红色值。为避免混淆,样本图像仅使用色相范围开始处的红色值。)
饱和度可以认为是颜色的纯度。如饱和度平面图像所示,具有最高饱和度的颜色具有最高值,并表示为白色。在饱和度图像的中心,请注意各种灰色阴影。这些对应于颜色的混合。青色,绿色和黄色阴影是真实颜色的混合。值大致等于亮度,您会注意到值平面的最亮区域与原始图像中最亮的颜色相对应。

整体源码如下:

clear all;
close all;
clc;
RGB = imread('peppers.png');
imshow(RGB)
HSV = rgb2hsv(RGB);
[h,s,v] = imsplit(HSV);
saturationFactor = 2;
s_sat = s*saturationFactor;
HSV_sat = cat(3,h,s_sat,v);
RGB_sat = hsv2rgb(HSV_sat);
imshow(RGB_sat)
RGB = reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]);
HSV = rgb2hsv(RGB);
[h,s,v] = imsplit(HSV);
montage({h,s,v,RGB},"BorderSize",10,"BackgroundColor",'w');

  • 11
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海宝7号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值