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;
}
``

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

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