cvtColor()函数是OpenCV里的颜色空间转换函数,可以实现RGB颜色向HSV、HSI等颜色空间的转换,也可以转换为灰度图像。

原型如下:

c++:void cvtColor(InputArray src,outputArray dst,int code,int dstCn=0)

第一个参数为输入图像;
第二个参数为输出图像;
第三个参数为颜色空间转换的标识符(具体见表);
第四个参数为目标图像的通道数,若该参数是0,表示目标图像取源图像的通道数。

下面是一个调用示例:

//此句代码的OpenCV2版为:
cvtColor(sreImage,dstImage,CV_GRAY2BGR);//转换原始图为灰度图
//此句代码的OpenCV3版为:
cvtColor(srcImage,dstImage,COLOR_GRAY2BGR);//转换原始图为灰度图而随着OpenCV版本的升级,cvtColor()函数对于颜色空间种类的支持也是越来越多。其标识符列举如表所示。

OpenCV 颜色空间转换:cvtColor()函数_OpenCV

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;
using namespace std;

int main(int argc, char ** argv)
{
Mat srcImage = imread("1.jpg", 1), dstImage;
cvtColor(srcImage, dstImage, COLOR_BGR2Lab);
imshow("原图", srcImage);
imshow("效果图", dstImage);

waitKey(0);

return 0;
}

运行:

OpenCV 颜色空间转换:cvtColor()函数_颜色空间_02




参考:

《OpenCV3 编程入门》 毛星云 P99