MATLAB rgb轉hsv後h通道取值含義
阿新 • • 發佈:2019-02-04
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”