一、函数:
a.cvtColor
函数:
(1)函数原型:
CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 );
(2)函数功能:
cvtColor
函数用于将输入图像从一种颜色空间转换到另一种颜色空间。
(3)颜色空间和通道顺序:
- 转换涉及到 RGB 颜色空间时,需要明确指定通道的顺序(RGB 或 BGR)。OpenCV 默认的颜色格式通常被称为 RGB,但实际上是 BGR(字节顺序相反)。
(4)颜色通道值范围:
- 对于不同的数据类型,颜色通道的值范围不同:
- 对于
CV_8U
图像:0 到 255。
- 对于
CV_16U
图像:0 到 65535。
- 对于
CV_32F
图像:0 到 1。
(5)线性与非线性转换:
- 在线性转换中,颜色通道值的范围不重要。但在非线性转换中,如 RGB 到 Luv*,输入 RGB 图像需要归一化到适当的值范围以获得正确的结果。
(6)归一化示例:
- 如果你有一个直接从 8 位图像转换而来的 32 位浮点图像,而没有进行任何缩放,那么它将具有 0..255 的值范围,而不是函数假定的 0..1。因此,在调用
cvtColor
之前,你需要先将图像缩放下来: