颜色空间转换 cvtColor()[OpenCV 笔记13]

时间:2022-07-11 09:03:49
void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=)
  • src: 输入图像
  • dst: 输出图像
  • code: 颜色空间转换标识符
    • OpenCV2的CV_前缀宏命名规范被OpenCV3中的COLOR_式的宏命名前缀取代
    • 注意RGB色彩空间默认通道顺序为BGR
    • 具体可以参考: enum cv::ColorConversionCodes部分
  • dstCn: 目标图像的通道数,该参数为0时,目标图像根据源图像的通道数和具体操作自动决定

  示例代码如下:

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
// main
int main( int argc, char** argv )
{
// Load image
cv::Mat srcImage = cv::imread("1.jpg"), dstImage; // Convert to other color space
cv::cvtColor(srcImage, dstImage, cv::COLOR_BGR2Lab);
imshow("Lab Space", dstImage); cv::cvtColor(srcImage, dstImage, cv::COLOR_BGR2GRAY);
imshow("Gray Scale", dstImage); cv::waitKey(); return ;
}

Original Image:

颜色空间转换 cvtColor()[OpenCV 笔记13]

Lab Space:

颜色空间转换 cvtColor()[OpenCV 笔记13]

Gray Scale:

颜色空间转换 cvtColor()[OpenCV 笔记13]