cvtColor()

cv::cvtColor()用于将图像从一个颜色空间转换到另一个颜色空间的转换(目前常见的颜色空间均支持),并且在转换的过程中能够保证数据的类型不变,即转换后的图像的数据类型和位深与源图像一致。

  1. void cv::cvtColor(
  2.       cv::InputArray src, // 输入序列
  3.       cv::OutputArray dst, // 输出序列
  4.       int code, // 颜色映射码
  5.       int dstCn = 0 // 输出的通道数 (0='automatic')
  6.      );

参数解释: 
. InputArray src: 输入图像即要进行颜色空间变换的原图像,可以是Mat类 
. OutputArray dst: 输出图像即进行颜色空间变换后存储图像,也可以Mat类 
. int code: 转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片,
. int dstCn = 0: 目标图像通道数,如果取值为0,则由src和code决定

cvtColor()

 

 

#include <iostream>

#include <opencv2/core.hpp>

#include <opencv2/highgui.hpp>

#include <opencv2/imgproc.hpp>

 

using namespace std;

using namespace cv;

 

int main()

{

    Mat srcImage = imread("星空.png");

 

    //判断图像是否加载成功

    if(!srcImage.data)

    {

        cout << "图像加载失败!" << endl;

        return false;

    }

    else

        cout << "图像加载成功!" << endl << endl;

 

    //显示原图像

    namedWindow("原图像",WINDOW_AUTOSIZE);

    imshow("原图像",srcImage);

 

    //将图像转换为灰度图,采用CV_前缀

    Mat grayImage;

    cvtColor(srcImage, grayImage, CV_BGR2GRAY);     //将图像转换为灰度图

    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;

}