上篇文章中说了VideoCapture将读取的到流统一转换成了BGR24;其实imread()也是将图片转换成BGR24;
如果想要进行颜色空间的转换需要使用cvtColor()函数;
void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
src:这是一幅8位无符号、16位无符号(CV_16UC)、或单精度浮点输入图像
dst:这是于src有相同尺寸和深度的输出图像
code:这是颜色空间转换代码。这个参数的结构是COLOR——SPACEsrc2SPACEdst。一些示例值是COLOR_BGR2GRAY和COLOR_YCrCb2BGR。
dstCn:这是目标图像的通道数。如果这个参数为0或省略,则通道数由src和code自动产生。
颜色空间转换代码明细如下:
/** Constants for color conversion */
enum
{
CV_BGR2BGRA =0,
CV_RGB2RGBA =CV_BGR2BGRA,
CV_BGRA2BGR =1,
CV_RGBA2RGB =CV_BGRA2BGR,
CV_BGR2RGBA =2,
CV_RGB2BGRA =CV_BGR2RGBA,
CV_RGBA2BGR =3,
CV_BGRA2RGB =CV_RGBA2BGR,
CV_BGR2RGB =4,
CV_RGB2BGR =CV_BGR2RGB,
CV_BGRA2RGBA =5,
CV_RGBA2BGRA =CV_BGRA2RGBA,
CV_BGR2GRAY =6,
CV_RGB2GRAY =7,
CV_GRAY2BGR =8,
CV_GRAY2RGB =CV_GRAY2BGR,
CV_GRAY2BGRA =9,
CV_GRAY2RGBA =CV_GRAY2BGRA,
CV_BGRA2GRAY =10,
CV_RGBA2GRAY =11,
CV_BGR2BGR565 =12,
CV_RGB2BGR565 =13,
CV_BGR5652BGR =14,
CV_BGR5652RGB =15,
CV_BGRA2BGR565 =16,
CV_RGBA2BGR565 =17,
CV_BGR5652BGRA =18,
CV_BGR5652RGBA =19,
CV_GRAY2BGR565 =20,
CV_BGR5652GRAY =21,
CV_BGR2BGR555 =22,
CV_RGB2BGR555 =23,
CV_BGR5552BGR =24,
CV_BGR5552RG