cv::CvtColor是opencv库中的一个函数
功能:函数cv::CvtColor实现色彩空间转换。
API说明
C++ API如下表所示
void cv::cvtColor(InputArray src, OutputArray dst,int code, int dstCn=0 );
InputArray | src | 原始图像,格式:8-bit unsigned / 16-bit unsigned / single-precision floating-point |
OutputArray | dst | 目标图像:size与depth和原始图像要相等 |
int | code | 色彩空间转换码或标识 |
int | dstCn=0 | 目标图像的通道数,此参数为0时,目标图像的通道数由原始图像自动生成 |
cv::cvtColor()用于将图像从一个颜色空间转换到另一个颜色空间的转换(目前常见的颜色空间均支持),并且在转换的过程中能够保证数据的类型不变,即转换后的图像的数据类型和位深与源图像一致。
示例
#include <iostream>
#include <opencv2\imgproc\types_c.h> //for CV_RGB2GRAY
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat srcImage = imread("南京迎春花.jpg");//读取图像
//注意读者自己图像读取位置
//判断图像是否加载成功
if (!srcImage.data)
{
cout << "图像加载失败!" << endl;
return false;
}
else
cout << "图像加载成功!" << endl << endl;
//显示原图像
namedWindow("原图像", WINDOW_AUTOSIZE);
imshow("原图像", srcImage);
//将图像转换为灰度图,采用CV_前缀
Mat grayImage;
cvtColor(srcImage, grayImage, CV_RGB2GRAY); //将图像转换为灰度图
namedWindow("灰度图", WINDOW_AUTOSIZE);
imshow("灰度图", grayImage);
//将图像转换为HSV,采用COLOR_前缀
Mat HSVImage;
cvtColor(srcImage, HSVImage, COLOR_BGR2HSV); //将图像转换为HSV图
namedWindow("HSV", WINDOW_AUTOSIZE);
imshow("HSV", HSVImage);
waitKey(0);
return 0;
}
运行结果