1. 程式人生 > >MATLAB rgb轉hsv後h通道取值含義

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”
這裡寫圖片描述