OpenCV CUDA模块图像处理------颜色空间处理之颜色空间转换函数cvtColor()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

该函数用于在 GPU 上进行颜色空间转换,支持多种常见的颜色空间转换操作。

函数原型

cpp 复制代码
void cv::cuda::cvtColor 	
(
 	InputArray  	src,
	OutputArray  	dst,
	int  	code,
	int  	dcn = 0,
	Stream &  	stream = Stream::Null() 
) 		

参数

参数

  • src 源图像,支持以下属性:
    • 深度(depth)为 CV_8U、CV_16U 或 CV_32F;
    • 通道数为 1、3 或 4。
  • dst 目标图像。
  • code 颜色空间转换代码。详细信息请参见 cvtColor 函数。
  • dcn 目标图像的通道数量。如果该参数为 0,则通道数会根据源图像和转换代码自动推断。
  • stream 用于异步执行的 CUDA 流对象。

一些 3 通道的颜色空间(如 HSV、XYZ 等)可以存储在 4 通道图像中以获得更好的性能。

代码示例

cpp 复制代码
#include <opencv2/cudaimgproc.hpp>  // 必须包含此头文件
#include <opencv2/opencv.hpp>

int main()
{
    // 从 CPU 加载图像
    cv::Mat bgr_cpu = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png" );

    if ( bgr_cpu.empty() )
    {
        std::cerr << "无法加载图像!" << std::endl;
        return -1;
    }

    // 上传到 GPU
    cv::cuda::GpuMat bgr_gpu, gray_gpu;
    bgr_gpu.upload( bgr_cpu );

    // 使用 GPU 进行颜色空间转换(BGR -> Gray)
    cv::cuda::cvtColor( bgr_gpu, gray_gpu, cv::COLOR_BGR2GRAY );

    // 下载结果回 CPU 并显示
    cv::Mat gray_cpu;
    gray_gpu.download( gray_cpu );

    cv::imshow( "Gray Image", gray_cpu );
    cv::waitKey( 0 );

    return 0;
}

运行结果

相关推荐
Csvn5 小时前
第 5 章 工具调用
人工智能·aigc·agent
clorinda5 小时前
OpenCV实战学习记录:图像拼接与答题卡识别
人工智能·opencv·学习
腾视科技-AIoT5 小时前
腾视科技AIBOX双版本重磅发布!本地安全与全球适配,解锁视频智能新可能
大数据·人工智能·科技·ai·物理ai·ainas·腾视科技
zcmodeltech5 小时前
煤化工沙盘模型控制系统设计与实现:多工段协同联动方案
网络·人工智能·stm32·嵌入式硬件·制造·多分类
CTA终结者5 小时前
2026年程序员量化开发学习:用示例、拆解和练习入门
人工智能·python
小酒星小杜5 小时前
如何简单地创建你的第一部漫画?从一个“可见变化”开始
人工智能·python·产品
掘金酱5 小时前
TRAE Work 实战帮征文 | 获奖名单公示
前端·人工智能·后端
sel_96 小时前
【OPD论文导读(二)】OPD(On-Policy Distillation)全景调研:十篇论文讲透“在自己生成的内容上学习“这件事
人工智能·python·深度学习·学习·算法·语言模型
OBiO20136 小时前
如何构建肺动脉高压动物模型?AAV靶向基因调控造模新思路
人工智能
北山小恐龙6 小时前
使用手势在电脑刷抖音
人工智能·python·深度学习·yolo·机器学习·计算机视觉