OpenCV cvtColor 函数详解:颜色空间转换指南与示例

cvtColor 函数是 OpenCV 中用于图像颜色空间转换的函数,它可以将一张图像从一种颜色空间转换到另一种颜色空间。

函数原型

void cv::cvtColor(
    InputArray src,           // 输入图像
    OutputArray dst,          // 输出图像
    int code,                 // 转换类型代码
    int dstCn = 0            // 输出图像通道数
)

其中,src 表示输入图像,dst 表示输出图像,code 表示转换类型代码,dstCn 表示输出图像通道数。

注意事项

  1. 输入图像和输出图像必须是同一类型(比如 CV_8UC1、CV_8UC3 等)。

  2. 转换类型代码 code 是一个整数值,表示要进行何种颜色空间转换。常见的转换类型有:

    • CV_BGR2GRAY:BGR 彩色图像转灰度图像
    • CV_GRAY2BGR:灰度图像转 BGR 彩色图像
    • CV_BGR2HSV:BGR 彩色图像转 HSV 彩色图像
    • CV_HSV2BGR:HSV 彩色图像转 BGR 彩色图像
    • CV_BGR2YCrCb:BGR 彩色图像转 YCrCb 彩色图像
    • CV_YCrCb2BGR:YCrCb 彩色图像转 BGR 彩色图像

示例

下面是一个将 BGR 彩色图像转换成灰度图像的示例:

#include <opencv2/opencv.hpp>
using namespace cv;

int main()
{
    Mat srcImage = imread('test.jpg');
    if (srcImage.empty()) {
        return -1;
    }

    Mat grayImage;
    cvtColor(srcImage, grayImage, CV_BGR2GRAY);    // 将图像从 BGR 转换成灰度图像

    imshow('srcImage', srcImage);
    imshow('grayImage', grayImage);

    waitKey(0);
    return 0;
}

通过以上示例代码,您可以轻松实现各种颜色空间的转换,为图像处理提供更多可能性。

OpenCV cvtColor 函数详解:颜色空间转换指南与示例

原文地址: https://www.cveoy.top/t/topic/or1t 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录