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

运行结果

相关推荐
LgZhu(Yanker)4 小时前
27、企业维修保养(M&R)全流程管理:从预防性维护到智能运维的进阶之路
大数据·运维·人工智能·erp·设备·维修·保养
ModelWhale5 小时前
“大模型”技术专栏 | 和鲸 AI Infra 架构总监朱天琦:大模型微调与蒸馏技术的全景分析与实践指南(上)
人工智能·大模型·大语言模型
lxmyzzs7 小时前
【图像算法 - 08】基于 YOLO11 的抽烟检测系统(包含环境搭建 + 数据集处理 + 模型训练 + 效果对比 + 调参技巧)
人工智能·yolo·目标检测·计算机视觉
霖007 小时前
ZYNQ实现FFT信号处理项目
人工智能·经验分享·神经网络·机器学习·fpga开发·信号处理
GIS数据转换器8 小时前
AI 技术在智慧城市建设中的融合应用
大数据·人工智能·机器学习·计算机视觉·系统架构·智慧城市
竹子_238 小时前
《零基础入门AI:传统机器学习进阶(从拟合概念到K-Means算法)》
人工智能·算法·机器学习
上海云盾-高防顾问8 小时前
DDoS 防护的未来趋势:AI 如何重塑安全行业?
人工智能·安全·ddos
Godspeed Zhao8 小时前
自动驾驶中的传感器技术17——Camera(8)
人工智能·机器学习·自动驾驶·camera·cis
摆烂工程师8 小时前
GPT-5 即将凌晨1点进行发布,免费用户可以使用 GPT-5
前端·人工智能·程序员
今天也不想动9 小时前
文献解读-生境分析亚区域选择+2D_DL+3D_DL-局部晚期食管鳞状细胞癌新辅助化疗免疫治疗反应预测
人工智能·影像组学·生境分析