怎样识别图像中目标的颜色
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
怎样识别图像中目标的颜色
计算机与信息工程系 管庶安
一 颜色的描述
描述物体的彩色有多种计色体系.如RGB 、HLS 、YUV 等,各有独到之处.已知一种,可求出另一种.
1 RGB 三基色计色体系
像素的颜色由R (红色)、G (绿色)、B (蓝色)三个分量按不同的比例混合而成.在24位真彩色位图(.BMP )中,R 、G 、B 的取值范围为0~255.若三个基色分量确定了,则像素的颜色就完全确定了.
RGB 计色体系虽然物理概念清楚,计算简单,可直接用于图像的显示.但不利于人们对颜色的认知,若已知三个基色分量,要回答该像素是什么颜色,应在三维空间进行,并非易事;三个分量值处于同等重要的地位,加强其中某个分量,就会破坏三个分量之间的比例关系,导致颜色的改变.为此,引入如下计色体系.
2 YUV 计色体系
研究视觉生理特性表明,人眼在感知物体的颜色时,主要通过如下信息进行: (1) 物体是何种颜色?即色调是何值;
(2) 该颜色的深浅如何?即该颜色的色饱和度是多少; (3) 该颜色是亮还是暗?即该颜色的亮度是多少;
研究还表明,图像清晰与否主要取决于亮度信息.即人眼对图像细节的辨认主要通过亮度信息进行,色调和色饱和度对辨认细节的贡献远低于亮度.因此,亮度分量在图像中占有突出地位.
YUV 计色体系也用三个分量来描述彩色,其中,Y 为亮度分量,也称为灰度,即颜色的明暗程度;U 为蓝差分量;V 为红差分量.已知RGB ,可计算出YUV :
0.30.590.110.30.590.890.70.590.11Y R G B
U B Y R G B V R Y R G B
=++=-=--+=-=-- 可以证明,U 、V 与亮度无关.U 、V 合称为色度,可在复平面上描述:
U
若知U 和V ,则可求出复数 U +jV 的模S 和幅角ϕ:
1S V tg U
ϕ-==
其中,S 称为色饱和度,表示颜色的深浅;ϕ称为色调,表示颜色的种类.用S 和ϕ表示色度,更便于人眼对颜色的感知.
为了便于颜色识别,将上表的色度分量用矢量的形式绘于U -V 坐标系中:
3 HLS 计色体系
若已知三基色值RGB ,求
亮度 L = 色饱和度(%) S = 色调(弧度或度) ()H if B G ≤ 1
1
2
2
22cos ()2()()()R G B
H if B G R G R B G B π---=->⎡⎤-+--⎣⎦
类似地,亮度表示颜色的明暗程度;色饱和度和色调合称为色度,分别表示颜色的深浅和种类.为了直观地表示色度,用极坐标形式表示色度,称为色度图.径向坐标为色饱和度S , 环向坐标为色调H .
环向坐标) 180°(青) 径向坐标)
(红)
图中,圆心处的色饱和度S = 0,表示无颜色,即黑白色.此时,究竟是黑色还是白色,要看亮度L 的大小.
二颜色的识别
1 单个像素的颜色识别
举例:设某像素的三个基色值为R=100,G=20,B=200.计算得:
亮度L=(100+20+200)/3=107 亮度中等(0为全黑,255为最亮)
色饱和度S=1-20/107=81.3% 颜色较深(100%为最深)
色调H=257°紫偏蓝
2区域的颜色识别
图像中的目标,往往是由许多像素排列形成的连通区.这些像素的三基色值不一定严格相等,而是集中分布在色度图的某一区域,从整体上表现出某种颜色.因此,取该连通区中的某像素点作为整体颜色不一定准确,应该采用统计的方法,以出现概率最大的三基色值作为整体颜色.算法如下:
Ⅰ建立三个数组:
int Cr[256],Cg[256],Cb[256];
将三个数组的各个元素的初始值置为0;
Ⅱ对待识别区域的所有像素点(R,G,B),作如下操作:
Cr[R]++;Cg[G]++,Cb[B]++;
Ⅲ分别求出各数组中值最大的元素的下标:
Rm=Index(max{ Cr[ ]});Gm= Index(max{ Cg[ ]});Bm= Index(max{ Cb[ ]});
Ⅳ按单个像素的颜色识别方法,求(Rm,Gm,Bm)表示的颜色.。