OpenCV cvtColor 函数详解:颜色空间转换指南与示例
OpenCV cvtColor 函数详解:颜色空间转换指南与示例
cvtColor 函数是 OpenCV 中用于图像颜色空间转换的函数,它可以将一张图像从一种颜色空间转换到另一种颜色空间。
函数原型
void cv::cvtColor(
InputArray src, // 输入图像
OutputArray dst, // 输出图像
int code, // 转换类型代码
int dstCn = 0 // 输出图像通道数
)
其中,src 表示输入图像,dst 表示输出图像,code 表示转换类型代码,dstCn 表示输出图像通道数。
注意事项
-
输入图像和输出图像必须是同一类型(比如 CV_8UC1、CV_8UC3 等)。
-
转换类型代码 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/or1t 著作权归作者所有。请勿转载和采集!