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

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.xdnf.cn/news/9104.html

相关文章:

  • Wan2.1 图生视频模型内部协作流程
  • 02.【Qt开发】Qt Creator介绍及新建项目流程
  • Python打卡 DAY 38
  • 华为高斯数据库(GaussDB)深度解析:国产分布式数据库的旗舰之作
  • 局域协作中的前端调试:WebDebugX 在本地多端调试中的实践
  • CPU服务器的主要功能有哪些?
  • 高防CDN如何解决网站访问卡顿与崩溃问题?
  • VUE npm ERR! code ERESOLVE, npm ERR! ERESOLVE could not resolve, 错误有效解决
  • 鸿蒙仓颉开发语言实战教程:自定义组件
  • 将Windows11下的Ubuntu应用移动到其他盘
  • mysql中的MVCC
  • PH热榜 | 2025-05-24
  • DRF的使用
  • 【前端】【React】React性能优化系统总结
  • DAY07:Vue Router深度解析与多页面博客系统实战
  • 微信小程序的软件测试用例编写指南及示例
  • kafka SASL/PLAIN 认证及 ACL 权限控制
  • Mysql之用户管理
  • [25-cv-05718]BSF律所代理潮流品牌KAWS公仔(商标+版权)
  • 分布式项目保证消息幂等性的常见策略
  • 并发编程艺术--AQS底层源码解析(三)
  • 华为OD机试真题——构成正方形的数量(2025B卷:100分)Java/python/JavaScript/C++/C/GO六种最佳实现
  • P2340 [USACO03FALL] Cow Exhibition G
  • 时序模型上——ARIMA/
  • 云蝠 Voice Agent:开启大模型时代语音交互新纪元
  • AAOS系列之(四) ---APP端如何获取CarService中的各个服务代理
  • day8补充(中断驱动和队列缓冲实现高效数据处理)
  • day020-sed和find
  • 【C++高阶一】二叉搜索树
  • Speech Synthesis/Text to Speech(TTS)