一、什么是HSV色彩空间?
RGB色彩空间是基于三基色而言,即红色、绿色、蓝色。而HSV色彩空间则是基于色调、饱和度和亮度而言的。
色调(H)是指光的颜色,例如,彩虹中的赤,橙,黄,绿,青,蓝,紫分别表示不同的色调。在OpenCV中,色调在区间[0,180]内取值。例如,代表红色、黄色、绿色和蓝色的色调值分别为0、30、60和120。
饱和度(S)值色彩的深浅。饱和度在区间[0,255]内取值。当饱和度为0时,图像将变为灰度图像。
亮度(V)指光的明暗。与饱和度相同,亮度在区间[0,255]内取值。亮度值越大,图像越亮;当亮度值为0时,图像呈纯黑色。
二、HSV模型
这个模型就是按色彩、深浅、明暗来描述的。
H是色彩;
S是深浅, S = 0时,只有灰度;
V是明暗,表示色彩的明亮程度,但与光强无直接联系。
三.RGB和HSV的关系
把RGB三维坐标的中轴线立起来,并扁化,就能形成HSV的锥形模型了。但V与强度无直接关系,因为它只选取了RGB的一个最大分量。而RGB则能反映光照强度(或灰度)的变化。
由RGB到HSV的转换:HSV对用户来说是一种直观的颜色模型。我们可以从一种纯色彩开始,即指定色彩角H,并让V=S=1,然后我们可以通过向其中加入黑色和白色来得到我们需要的颜色。增加黑色可以减小V而S不变,同样增加白色可以减小S而V不变。例如,要得到深蓝色,V=0.4 S=1 H=240度。要得到淡蓝色,V=1 S=0.4 H=240度。
四.FPGA框架设计
五.测试
编写一个测试TB,输入RGB的颜色为纯红色,检测输出的HSV是不是和理论值一样。
总结
测试结果如下图所示,与理论值一样,H=0.