HSV颜色空间(H代表色调,S即饱和度,V是亮度)
色调H
用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;
饱和度S
饱和度S表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。
RGB颜色 |
色度 |
饱和度 |
亮度 |
蓝色 |
240 |
1 |
1 |
黄色 |
60 |
1 |
1 |
白色 |
无意义 |
0 |
1 |
黑色 |
无意义 |
0 |
0 |
获取HSV的原理:
颜色分割(辅助定位):
H(i,j)和s(i,j)分别是i,j处像素的色调和分量,B(i,j)是分割的二值图像。
参考文献:复杂场景下车牌定位与字符切分方法研究_侯永顺
根据实际情况多次实验修改参数后得到
0.6、0.62、0.5是经实验后调整所得的值,适用于蓝色车牌(车身颜色在色调筛选范围内的情况并不适用)。如果是警车、新能源汽车车牌则需要另外设置参数,在此未做过多的探讨。
辅助定位流程图:
效果图:
RGB—HSV
方法一:
I=imread('C:\Users\admin\Desktop\photo\lenna256c.bmp','bmp');
H=double(I);%H为RGB图像
[hue,s,v]=rgb2hsv(H);
subplot(1,4,1);imshow(I);title('原图');
subplot(1,4,2);imshow(hue);title('H');
subplot(1,4,3);imshow(s);title('S');
subplot(1,4,4);imshow(v);title('V');%直接转为HSV三图层
方法二:
RGB=imread('C:\Users\admin\Desktop\photo\lenna256c.bmp','bmp');
I=rgb2hsv(RGB);
imshow(I),title('HSV图');
H=double(I);%H为RGB图像
[hue,s,v]=rgb2hsv(H);
subplot(1,4,1);imshow(I);title('原图');
subplot(1,4,2);imshow(hue);title('H');
subplot(1,4,3);imshow(s);title('S');
subplot(1,4,4);imshow(v);title('V');%RGB先转HSV,再转为HSV