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

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

运行结果

在这里插入图片描述

相关文章:

  • 【STM32】HAL库 之 CAN 开发指南
  • JS高级 - 对象
  • 十一、Samba文件共享服务
  • 2025年- H55-Lc163--124. 二叉树的最大路径和(深搜)--Java版
  • 以知识管理赋能 DevSecOps,加速关键领域软件自主演进
  • 字符串day7
  • 11.12 LangGraph全局共享状态实战:200ms实现50+仓库AI协同,效率飙升!
  • 科技赋能建筑行业,智能楼宇自控系统崭露头角成发展新势力
  • 拆解汽车HMI设计:如何用3D可视化提升驾驶安全感?
  • 服务发现Nacos
  • CMake指令:file()
  • Unity Sherpa-onnx 笔记
  • K8s入门(4)Kubernetes的技术演进
  • VR三维数字空间还原
  • 卓力达蚀刻工艺:精密制造的跨行业赋能者
  • 光电赋能低空场景,灵途科技助力无人机持续升级
  • Mongodb | 基于Springboot开发综合社交网络应用的项目案例(中英)
  • RK3568 OH5.1 镜像烧录
  • C++将地址转换为字符串
  • 行为型:中介者模式
  • 网站后台扫描插件/深圳疫情防控最新消息
  • 宿州银行网站建设/什么关键词能搜到资源
  • 网站建设的软件介绍/网站查询关键词排名软件
  • 江门建站公司/近10天的时事新闻
  • 湖南网站建设开发公司/关键词seo排名公司
  • 百度站长工具网站验证/淘宝产品关键词排名查询