opencv中常用的颜色空间包括RGB、HSV和YUV等。RGB颜色空间是基于三原色原理而形成的,常用于图像显示系统中;HSV描述的是色度、饱和度和亮度这些表示颜色的方法,常用于描述色彩变化,YUV是通过亮度与色度来描述颜色,色度由UV通道组合而成。
opencv中提供cvtColor函数来转换图像的颜色空间:void cvtColor(InputArray src,OutputArray dst,int code ,int dstCn=0)
该函数用于转换图像的颜色空间,Src是输入图像源,可以是8位CV_8U或16位CV_16U无符号整型,或单精度浮点数CV_32F;code是颜色空间的转换模式,常用的有CV_RGB2GRAY,CV_RGB2HSV,CV_BRG2HLS及CV_BGR2YCrCb等;dstCn是目标图像的多通道设置,设置为0则通道数自动从src与code处获取。
PS:opencv默认的颜色通道是BGR ,RGB转LUV通道时,需要对RGB归一化为32位浮点数,即各个通道的值的变化范围为0到1。
RGB空间下坐标(R、G、B)代表着相应的颜色空间,且,从RGB转HSV空间按下面公式:
V=max(R,G,B)