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.pswp.cn/web/81523.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81523.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81523.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux Ubuntu24.04配置安裝MySQL8.4.5高可用集群主從復制!

MySQL 主從復制&#xff08;Replication&#xff09;是實現數據高可用、讀寫分離及異地容災的核心機制之一。主庫寫、從庫讀&#xff0c;提升并發能力&#xff1b;讀寫分離&#xff0c;減輕主庫壓力。 本地 windows 系統有一個Linux Ubuntu子系統&#xff0c;版本為Ubuntu 24.…

R基于邏輯回歸模型實現心臟病檢測及SHAP值解釋項目實戰

說明&#xff1a;這是一個機器學習實戰項目&#xff08;附帶數據代碼文檔視頻講解&#xff09;&#xff0c;如需數據代碼文檔視頻講解可以直接到文章最后關注獲取。 1.項目背景 心血管疾病是全球范圍內導致死亡的主要原因之一&#xff0c;每年有數百萬人因此失去生命。在眾多的…

嵌入式學習筆記 -函數嵌套時以及異常響應時,LR使用的具體過程

函數嵌套時以及異常響應時&#xff0c;寄存器LR的作用存在顯著區別&#xff0c;理解這個問題對于理解freeRTOS底層代碼的實現大有幫助&#xff0c;具體使用過程如下&#xff1a; 一 函數嵌套時的LR使用的具體過程 在ARM架構(特別是M0處理器)中&#xff0c;函數嵌套調用時LR(L…

Java String函數的使用

文章目錄 String字符串比較字符串查找轉化字符串替換字符串拆分字符串截取&#xff08;常用&#xff09;字符串的不可變性 String str本來是字符串常量的引用&#xff0c;應該打印地址&#xff0c;但是編譯器重寫了toString方法&#xff0c;所以打印hello String 的構造方法 …

Oracle 11G RAC重啟系統異常

vmware安裝centos7環境部署Oracle RAC (11.2.0.4) 部署時所有資源情況都是正常的&#xff0c;關機重啟虛擬機后集群資源狀態異常&#xff0c;請教CSDN大佬 – 部署規劃 域名地址備注rac16192.168.31.16rac17192.168.31.17rac16vip192.168.31.26viprac17vip192.168.31.27vip…

吉林省CCPC與全國邀請賽(東北地區賽)游記

總述&#xff1a; 本次賽段共獲得一銀&#xff08;吉林省賽&#xff09;、一銅&#xff08;東北地區賽&#xff09;、一鐵&#xff08;全國邀請賽的成績&#xff09;。總體成績跟校內賽的情況相比隊伍狀態與發揮水準都有提升&#xff09;&#xff0c;但也體現出很多不足&#x…

「Python教案」循環語句的使用

課程目標 1&#xff0e;知識目標 能使用for循環和while循環設計程序。能使用循環控制語句&#xff0c;break、continue、else設計程序。能使用循環實際問題。 2&#xff0e;能力目標 能根據需求合適的選擇循環結構。能對嵌套循環代碼進行調試和優化。能利用循環語句設計&am…

OpenCV---findCountours

一、基本概念與用途 findContours是OpenCV中用于在二值圖像中查找輪廓的核心函數。輪廓作為連續的點集&#xff0c;能夠精確勾勒出物體的邊界&#xff0c;廣泛應用于目標檢測、形狀分析、圖像分割等領域。 函數核心價值 目標檢測&#xff1a;通過輪廓定位圖像中的物體&#…

20250523-BUG:無法加載“GameLib/Framework.h“頭文件(已解決)

BUG&#xff1a;無法加載"GameLib/Framework.h"頭文件&#xff08;已解決&#xff09; 最近在打開新的C項目時報了這個錯&#xff0c;我是按照以下步驟來排除的BUG&#xff0c;希望對您有所幫助~ 檢查【C/C】-【附加包含目錄】中的路徑有無問題&#xff0c;一般需要加…

商品條形碼查詢接口如何用C#進行調用?

一、什么是商品條碼查詢接口&#xff1f; 1974年6月26日&#xff0c;美國俄亥俄州的一家超市首次使用商品條碼完成結算&#xff0c;標志著商品條碼正式進入商業應用領域。這項技術通過自動識別和數據采集&#xff0c;極大提升了零售行業的作業效率&#xff0c;減少了人工錄入錯…

SD07_NVM的安裝及相關操作

以下是在 Windows 系統 上使用 NVM&#xff08;Node Version Manager&#xff09; 管理多個 Node.js 版本的詳細步驟&#xff0c;從零開始操作&#xff1a; 一、準備工作 卸載舊版 Node.js 打開 控制面板 → 程序和功能&#xff0c;找到已安裝的 Node.js 和 npm&#xff0c;徹底…

OSI 深度安全防御體系架構深度剖析

文章目錄 前言什么是 OSI 深度安全防御體系架構各層的安全防御措施物理層數據鏈路層網絡層傳輸層會話層表示層應用層 OSI 深度安全防御體系架構的優勢全方位防護深度防御靈活性和可擴展性 總結 前言 大家好&#xff0c;我是沛哥兒。今天咱們來深入探討一下 OSI 深度安全防御體…

大模型應用:開發移動端頁面個人中心頁面提示詞

角色 你是一個移動端web頁面開發專家&#xff0c;擅長開發移動端頁面&#xff0c;使用原生web技術&#xff08;html&#xff0c;css,js&#xff09;&#xff0c;開發的頁面針對手機移動端友好 技術棧 使用基礎的Html&#xff0c;CSS&#xff0c;JavaScript方案實現&#xff…

從零到一:影刀RPA學習者的破局之路

1. 學習目標與預期差距分析 1.1 官方課程學習目標梳理 影刀RPA的官方課程旨在幫助學習者掌握RPA&#xff08;機器人流程自動化&#xff09;的基本概念、操作技能和常見應用場景。課程內容通常包括&#xff1a; RPA基礎理論&#xff1a;介紹RPA的定義、優勢、發展歷程以及與其…

計算機組成與體系結構:硬盤驅動器(Hard Disk Drives)

目錄 &#x1f4bd; 硬盤驅動器&#xff08;HDD&#xff09;&#xff1a;傳統的固定輔助存儲設備 什么是硬盤驅動器&#xff1f; 硬盤的工作原理 HDD 的物理結構 Disk Pack&#xff08;盤組&#xff09; Tracks&#xff08;磁道&#xff09; Cylinders&#xff08;柱面&…

GitCode鏡像倉庫批量下載開發實錄

GitCode作為國內領先的開源代碼托管平臺&#xff0c;其鏡像倉庫批量下載功能對開發者生態建設與開源協作效率提升具有關鍵價值。本文基于企業級代碼資產管理需求&#xff0c;系統記錄從需求分析到生產部署的全周期開發實踐。內容覆蓋鏡像倉庫同步機制設計、分布式任務調度優化、…

基線配置管理:為什么它對網絡穩定性至關重要

什么是基線配置&#xff08;Baseline Configuration&#xff09; 基線配置&#xff08;Baseline Configuration&#xff09;是經過批準的標準化主設置&#xff0c;代表所有設備應遵循的安全、合規且運行穩定的配置基準&#xff0c;可作為評估變更、偏差或未授權修改的參考基準…

AJAX get請求如何提交數據呢?

在 AJAX 中使用 GET 請求提交數據&#xff0c;主要通過 在 URL 后拼接查詢參數 的方式實現&#xff0c;具體步驟如下&#xff1a; 1.構造帶參數的 URL 將數據以 鍵值 的形式拼接在 URL 后&#xff0c;多個參數間用 & 連接。例如&#xff1a; var url "https://exa…

基于FashionMnist數據集的自監督學習(對比式自監督學習SimCLR算法)

目錄 一&#xff0c;對比式自監督學習 1.1 簡介 1.2 常見算法 1.2.1 SimCLR (2020) 1.2.2 MoCo (2020) 1.2.3 BYOL (2021) 1.2.4 SimSiam (2021) 1.2.5 CLIP (2021) 1.2.6 DINO (2021) 1.2.7 SwAV (2020) 二&#xff0c;代碼邏輯分析 2.1 整體目標與流程 2.2 數據…

Linux:基礎指令與內涵理解(下)與權限

1.mv 作用&#xff1a;將文件移動、文件重命名 語法&#xff1a; mv (選項) 源文件/目錄 目標文件/目錄 &#xff08;1&#xff09;將文件/目錄移動到當前目錄的新文件/目錄&#xff08;也就是重命名操作&#xff09; 這里我們mv了test.txt文件到當前目錄下當前并不存在的ln.tx…