当前位置: 首页 > article >正文

OpenCV CUDA模块图像处理------颜色空间处理之GPU 上交换图像的通道顺序函数swapChannels()

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

算法描述

该函数用于在 GPU 上交换图像的通道顺序(例如将 BGR 图像转为 RGB)。
它适用于多通道图像(如 3 通道或 4 通道),可以自定义输出通道的排列顺序。

函数原型

void cv::cuda::swapChannels 
(InputOutputArray  	image,const int  	dstOrder[4],Stream &  	stream = Stream::Null() 
) 	

参数

参数类型描述
imageInputOutputArray输入/输出图像。必须是 3 或 4 通道的 8 位、16 位、32 位图像。
dstOrderconst int[4]目标通道顺序数组,指定每个输出通道来自输入的哪个索引(0-based)。
streamStream&CUDA 流对象,用于异步执行。默认为 Stream::Null(),即同步执行。

代码示例

#include <opencv2/cudaimgproc.hpp>
#include <opencv2/opencv.hpp>int main()
{// 加载图像(假设是 BGR 格式)cv::Mat h_src = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png" );if ( h_src.empty() ){std::cerr << "无法加载图像!" << std::endl;return -1;}// 将 3 通道图像转换为 4 通道 BGRAcv::Mat h_rgba;cv::cvtColor( h_src, h_rgba, cv::COLOR_BGR2BGRA );// 上传到 GPUcv::cuda::GpuMat d_src, d_dst;d_src.upload( h_rgba );// 设置目标通道顺序:BGR -> RGBint dstOrder[ 4 ] = { 2, 1, 0 };// 执行通道交换cv::cuda::swapChannels( d_src, dstOrder );  // 输出结果写回 d_src 自身// 下载结果cv::Mat h_dst;d_src.download( h_dst );// 显示或保存cv::imshow( "Swapped Channels", h_dst );cv::imwrite( "output_rgb.jpg", h_dst );cv::waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述

http://www.lryc.cn/news/2394659.html

相关文章:

  • 回归任务损失函数对比曲线
  • Magentic-UI:人机协作的网页自动化革命
  • 计算机专业大学生常用的刷题,资源网站(持续更新)
  • Redisson学习专栏(二):核心功能深入学习(分布式锁,分布式集合,原子操作与计数器,事件与监听)
  • 医疗多模态共情推理与学习一体化网络构成初探
  • MySQL : MySQL的安装【CentOS 7】
  • EasyRTC嵌入式音视频实时通话SDK助力AI与IoT智能硬件打造音视频交互多场景应用
  • pod创建和控制
  • Unity数字人开发笔记——讯飞超拟人语音
  • C# 文件 I/O 操作详解:从基础到高级应用
  • OpenCV 第7课 图像处理之平滑(二)
  • Visual Studio笔记:MSVC工具集、MSBuild
  • 【Netty系列】核心概念
  • Axure中继器交互完全指南:核心函数解析×场景实战×避坑策略(懂得才能应用)
  • DeepSeek 赋能数字人直播带货:技术革新重塑电商营销新生态
  • 高端制造行业 VMware 替代案例合集:10+ 头部新能源、汽车、半导体制造商以国产虚拟化支持 MES、PLM 等核心应用系统
  • 【b站计算机拓荒者】【2025】微信小程序开发教程 - chapter3 项目实践 - 3人脸识别采集统计人脸检测语音识别
  • 达梦的TEMP_SPACE_LIMIT参数
  • 24核32G,千兆共享:裸金属服务器的技术原理与优势
  • 杆塔倾斜在线监测装置:电力设施安全运行的“数字守卫”
  • C++23 新成员函数与字符串类型的改动
  • 在 ElementUI 中实现 Table 单元格合并
  • threejs渲染器和前端UI界面
  • AI笔记 - 网络模型 - mobileNet
  • day12 leetcode-hot100-20(矩阵3)
  • 【Java开发日记】基于 Spring Cloud 的微服务架构分析
  • 接口性能优化
  • AWTK 嵌入式Linux平台实现多点触控缩放旋转以及触点丢点问题解决
  • 尚硅谷redis7 93-97 springboot整合reids之总体概述
  • Flutter、React Native、Unity 下的 iOS 性能与调试实践:兼容性挑战与应对策略(含 KeyMob 工具经验)