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()函数对于颜色空间种类的支持也是越来越多。其标识符列举如表所示。
#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;
}
运行:
参考:
《OpenCV3 编程入门》 毛星云 P99