MATLAB rgb转hsv后h通道取值含义

MATLAB RGB转换为hsv后,h通道的值为0到1范围内的double型数据。但是hsv颜色空间中h是0到360度。他们的对应关系如下图所示。
这里写图片描述
示例代码展示如何通过由h指定颜色范围,通过饱和度值的更改,实现RGB特定颜色范围内彩色保留,范围外显示为灰色。

close all;clear all;clc;
I=imread('78.bmp');%读入图片
figure,imshow(I);
I_h=rgb2hsv(I);%RGB转hsv
figure,imshow(I_h);
[height,width,c]=size(I);
for i=1:height
    for j=1:width
        h=I_h(i,j,1);
        s=I_h(i,j,2);
        v=I_h(i,j,3);
        %通过将h通道颜色值特定范围内饱和度设为0,保留范围外颜色值
        if 0<h && h<0.833 
            I_h(i,j,2)=0;
        end
    end
end
I_r=hsv2rgb(I_h);
figure, imshow(I_r);

原图:
这里写图片描述
“0 < h < 0.833 ”
这里写图片描述
“ 0.833 < h || h < 0.667”
这里写图片描述
“0.667 < h || h < 0.5”
这里写图片描述
“0.5 < h || h < 0.33”
这里写图片描述
“0.33 < h || h < 0.167”
这里写图片描述
“0.167 < h”
这里写图片描述

猜你喜欢

转载自blog.csdn.net/u012428169/article/details/78929938
今日推荐