关于cvCvtColor的用法

来源:互联网 发布:java打印乘法表 编辑:程序博客网 时间:2024/05/20 10:13

   最近做人脸识别要用到cvCvtColor转换图像,老是到cvCvtColor这一块经常出错,经过仔细的研究这一函数,发现原来RGB转换成

   灰度图像时,输出的图像要定义为单通道的图像,学习的时候应该要谨慎,认真。

cvCvtColor(...),是Opencv里的颜色空间转换函数,可以实现RGB颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像
参数CV_BGR2GRAY是RGB到gray,
参数 CV_GRAY2BGR是gray到RGB.处理结果是彩色的,则转灰色就是了:
void cvCvtColor( const CvArr* src, CvArr* dst, int code );
src
输入的 8-bit,16-bit或 32-bit单倍精度浮点数影像。
dst
输出的8-bit, 16-bit或 32-bit单倍精度浮点数影像。
code
色彩空间转换的模式,该code来实现不同类型的颜色空间转换。比如CV_BGR2GRAY表示转换为灰度图,CV_BGR2HSV将图片从RGB空间转换为HSV空间。其中当code选用CV_BGR2GRAY时,dst需要是单通道图片当code选用CV_BGR2HSV时,对于8位图,需要将RGB值归一化到0-1之间。这样得到HSV图中的H范围才是0-360,S和V的范围是0-1。

0 0