OpenCV CUDA模塊中逐元素操作------邏輯運算

  • 操作系統:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 編程語言:C++11

算法描述

比較、AND、OR、NOT等。這類操作可用于創建基于條件的掩碼,這對于圖像分割或特征選擇非常有用。

主要函數

1. 按位與 (cv::cuda::bitwise_and)

功能: 對兩個矩陣執行逐元素按位與操作。

函數原型
void cv::cuda::bitwise_and
(InputArray src1,        // 第一個輸入矩陣或標量InputArray src2,        // 第二個輸入矩陣或標量OutputArray dst,       // 輸出矩陣const GpuMat& mask = GpuMat(), // 可選掩碼矩陣Stream& stream = Stream::Null() // 可選CUDA流
);
參數介紹:
  • src1: 輸入的第一個矩陣或標量。
  • src2: 輸入的第二個矩陣或標量。
  • dst: 輸出的結果矩陣。
  • mask: 可選的掩碼矩陣,用于指定哪些像素參與計算,默認為空(不使用掩碼)。
  • stream: CUDA流對象,用于控制操作的異步執行,默認為同步執行。

2. 按位或 (cv::cuda::bitwise_or)

功能: 對兩個矩陣執行逐元素按位或操作。

函數原型
void cv::cuda::bitwise_or
(InputArray src1,InputArray src2,OutputArray dst,const GpuMat& mask = GpuMat(),Stream& stream = Stream::Null()
);
參數
  • src1: 輸入的第一個矩陣或標量。
  • src2: 輸入的第二個矩陣或標量。
  • dst: 輸出的結果矩陣。
  • mask: 可選的掩碼矩陣,用于指定哪些像素參與計算,默認為空(不使用掩碼)。
  • stream: CUDA流對象,用于控制操作的異步執行,默認為同步執行。

3. 按位非 (cv::cuda::bitwise_not)

功能: 對單個矩陣執行逐元素按位非操作。

函數原型
void cv::cuda::bitwise_not
(InputArray src,        // 輸入矩陣OutputArray dst,       // 輸出矩陣const GpuMat& mask = GpuMat(), // 可選掩碼矩陣Stream& stream = Stream::Null() // 可選CUDA流
);
參數介紹
  • src: 輸入的矩陣。
  • dst: 輸出的結果矩陣。
  • mask: 可選的掩碼矩陣,用于指定哪些像素參與計算,默認為空(不使用掩碼)。
  • stream: CUDA流對象,用于控制操作的異步執行,默認為同步執行。

4. 按位異或 (cv::cuda::bitwise_xor)

功能: 對兩個矩陣執行逐元素按位異或操作。

函數原型

void cv::cuda::bitwise_xor
(InputArray src1,InputArray src2,OutputArray dst,const GpuMat& mask = GpuMat(),Stream& stream = Stream::Null()
);
參數介紹
  • src1: 輸入的第一個矩陣或標量。
  • src2: 輸入的第二個矩陣或標量。
  • dst: 輸出的結果矩陣。
  • mask: 可選的掩碼矩陣,用于指定哪些像素參與計算,默認為空(不使用掩碼)。
  • stream: CUDA流對象,用于控制操作的異步執行,默認為同步執行。

示例代碼

以下是一個綜合示例,展示了如何使用這些邏輯運算函數,并包含了所有參數的使用:


#include <opencv2/cudaarithm.hpp>  // 包含CUDA算術和邏輯運算頭文件
#include <opencv2/opencv.hpp>int main()
{// 創建兩個輸入矩陣cv::Mat h_src1 = ( cv::Mat_< uchar >( 3, 3 ) << 1, 0, 1, 0, 1, 0, 1, 0, 1 );  // 第一個輸入矩陣cv::Mat h_src2 = ( cv::Mat_< uchar >( 3, 3 ) << 0, 1, 0, 1, 0, 1, 0, 1, 0 );  // 第二個輸入矩陣// 將它們上傳到GPUcv::cuda::GpuMat d_src1, d_src2;d_src1.upload( h_src1 );d_src2.upload( h_src2 );// 定義輸出矩陣cv::cuda::GpuMat d_dst;// 按位與操作cv::cuda::bitwise_and( d_src1, d_src2, d_dst );cv::Mat h_bitwise_and;d_dst.download( h_bitwise_and );std::cout << "Result (Bitwise AND):\n" << h_bitwise_and << std::endl;// 按位或操作cv::cuda::bitwise_or( d_src1, d_src2, d_dst );cv::Mat h_bitwise_or;d_dst.download( h_bitwise_or );std::cout << "Result (Bitwise OR):\n" << h_bitwise_or << std::endl;// 按位非操作cv::cuda::bitwise_not( d_src1, d_dst );cv::Mat h_bitwise_not;d_dst.download( h_bitwise_not );std::cout << "Result (Bitwise NOT on src1):\n" << h_bitwise_not << std::endl;// 按位異或操作cv::cuda::bitwise_xor( d_src1, d_src2, d_dst );cv::Mat h_bitwise_xor;d_dst.download( h_bitwise_xor );std::cout << "Result (Bitwise XOR):\n" << h_bitwise_xor << std::endl;return 0;
}

運行結果

Result (Bitwise AND):
[  0,   0,   0;0,   0,   0;0,   0,   0]
Result (Bitwise OR):
[  1,   1,   1;1,   1,   1;1,   1,   1]
Result (Bitwise NOT on src1):
[254, 255, 254;255, 254, 255;254, 255, 254]
Result (Bitwise XOR):
[  1,   1,   1;1,   1,   1;1,   1,   1]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/906174.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/906174.shtml
英文地址,請注明出處:http://en.pswp.cn/news/906174.shtml

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

相關文章

一臺入網的電腦有6要素, 機器名,mac,ip,俺碼,網關,dns,分別有什么作用

一臺入網的電腦需要配置的 六大網絡要素&#xff08;機器名、MAC地址、IP地址、子網掩碼、網關、DNS&#xff09;各自承擔不同的關鍵作用&#xff0c;共同確保設備能正確通信和訪問網絡資源。以下是它們的詳細功能解析&#xff1a; 1. 機器名&#xff08;主機名&#xff09; 作…

MySQL之儲存引擎和視圖

一、儲存引擎 基本介紹&#xff1a; 1、MySQL的表類型由儲存引擎(Storage Engines)決定&#xff0c;主要包括MyISAM、innoDB、Memory等。 2、MySQL數據表主要支持六種類型&#xff0c;分別是&#xff1a;CSV、Memory、ARCHIVE、MRG_MYISAN、MYISAM、InnoBDB。 3、這六種又分…

【Spring Boot后端組件】mybatis-plus使用

文章目錄 mybatis-plus使用一、依賴引入二、添加相關配置項三、功能詳解1.自增主鍵2.邏輯刪除3.操作時間自動填充4.其他字段自動填充5.分頁查詢6.自定義動態查詢7.代碼生成器8.代碼生成器(自定義模板) mybatis-plus使用 一、依賴引入 pom.xml文件 <?xml version"1.…

docker compose 啟動指定的 service

使用 Docker Compose 啟動指定服務 要在 Docker Compose 中啟動特定的服務而不是所有服務&#xff0c;可以使用以下命令&#xff1a; docker compose up [服務名] 基本用法 啟動單個服務&#xff1a; docker compose up service_name 啟動多個指定服務&#xff1a; docker …

wordcount程序

### 在 IntelliJ IDEA 中編寫和運行 Spark WordCount 程序 要使用 IntelliJ IDEA 編寫并運行 Spark 的 WordCount 程序&#xff0c;需按照以下流程逐步完成環境配置、代碼編寫以及任務提交。 --- #### 1. **安裝與配置 IntelliJ IDEA** 確保已正確安裝 IntelliJ IDEA&#x…

SmartETL函數式組件的設計與應用

SmartETL框架主要采用了面向對象的設計思想&#xff0c;將ETL過程中的處理邏輯抽象為Loader和Processor&#xff08;對應loader模塊和iterator模塊&#xff09;&#xff0c;所有流程組件需要繼承或實現DataProvider&#xff08;iter方法&#xff09;或JsonIterator&#xff08;…

鴻蒙AI開發:10-多模態大模型與原子化服務的集成

鴻蒙AI開發&#xff1a;10-多模態大模型與原子化服務的集成 在鴻蒙生態中&#xff0c;多模態大模型與原子化服務的集成是一個重要課題。本文將介紹如何在鴻蒙平臺上進行多模態大模型與原子化服務的集成&#xff0c;以及相關的技術細節和實際案例。 鴻蒙AI開發概述 什么是鴻蒙AI…

python打卡day29@浙大疏錦行

知識點回顧 類的裝飾器裝飾器思想的進一步理解&#xff1a;外部修改、動態類方法的定義&#xff1a;內部定義和外部定義 作業&#xff1a;復習類和函數的知識點&#xff0c;寫下自己過去29天的學習心得&#xff0c;如對函數和類的理解&#xff0c;對python這門工具的理解等&…

20250516使用TF卡將NanoPi NEO core開發板出廠的Ubuntu core22.04.3系統降級到Ubuntu core16.04.2

20250516使用TF卡將NanoPi NEO core開發板出廠的Ubuntu core22.04.3系統降級到Ubuntu core16.04.2 2025/5/16 10:58 緣起&#xff1a;NanoPi NEO core核心板出廠預制的OS操作系統為Ubuntu core22.04.3系統。 【雖然是友善之臂提供的最新的系統&#xff0c;但是缺少很多用用程序…

密西根大學新作——LightEMMA:自動駕駛中輕量級端到端多模態模型

導讀 目前將自動駕駛與視覺語言模型&#xff08;VLMs&#xff09;結合的研究越來越火熱&#xff0c;VLMs已經證明了其對自動駕駛的重要作用。本文引入了一種用于自動駕駛的輕量級端到端多模態模型LightEMMA&#xff0c;它能夠集成和評估當前的商業和開源模型&#xff0c;以研究…

框架之下再看HTTP請求對接后端method

在當今的軟件開發領域&#xff0c;各類框架涌現&#xff0c;極大地提升了開發效率。以 Java 開發為例&#xff0c;Spring 框架不斷演進&#xff0c;Spring Boot 更是簡化到只需引入 Maven 包&#xff0c;添加諸如SpringBootApplication、RestController等注解&#xff0c;就能輕…

Vue+Go 自定義打字素材的打字網站

Typing_Key_Board 這是一個基于Vue 3和Go語言的自定義素材打字練習網站&#xff0c;靈感來源于常用字打字練習&#xff0c;解決了大多數網站無法自定義打字素材的問題。在 Typing_Key_Board (簡稱TKB)中&#xff0c;用戶可以自定義打字素材進行練習&#xff0c;在復習代碼的同…

開源物聯網平臺(OpenRemote)

在物聯網技術蓬勃發展的當下&#xff0c;OpenRemote作為一款強大的開源物聯網平臺&#xff0c;正逐漸在多個領域嶄露頭角。尤其是在智能能源管理領域&#xff0c;它為微電網和分布式能源網絡提供了全面且靈活的數據集成與管理方案&#xff0c;展現出獨特的優勢。 OpenRemote提供…

Spring Security與SaToken的對比與優缺點分析

Spring Security與SaToken對比分析 一、框架定位 Spring Security 企業級安全解決方案&#xff0c;深度集成Spring生態提供完整的安全控制鏈&#xff08;認證、授權、會話管理、攻擊防護&#xff09;適合中大型分布式系統 SaToken 輕量級權限認證框架&#xff0c;專注Token會…

每日一道leetcode(新學數據結構版)

208. 實現 Trie (前綴樹) - 力扣&#xff08;LeetCode&#xff09; 題目 Trie&#xff08;發音類似 "try"&#xff09;或者說 前綴樹 是一種樹形數據結構&#xff0c;用于高效地存儲和檢索字符串數據集中的鍵。這一數據結構有相當多的應用情景&#xff0c;例如自動…

【自然語言處理與大模型】大模型(LLM)基礎知識④

&#xff08;1&#xff09;微調主要用來干什么&#xff1f; 微調目前最主要用在定制模型的自我認知和改變模型對話風格。模型能力的適配與強化只是輔助。 定制模型的自我認知&#xff1a;通過微調可以調整模型對自我身份、角色功能的重新認知&#xff0c;使其回答更加符合自定義…

基于 Spring Boot 瑞吉外賣系統開發(十五)

基于 Spring Boot 瑞吉外賣系統開發&#xff08;十五&#xff09; 前臺用戶登錄 在登錄頁面輸入驗證碼&#xff0c;單擊“登錄”按鈕&#xff0c;頁面會攜帶輸入的手機號和驗證碼向“/user/login”發起請求。 定義UserMapper接口 Mapper public interface UserMapper exte…

什么是TCP協議?它存在哪些安全挑戰?

一、TCP協議概述 TCP&#xff08;傳輸控制協議&#xff09;是互聯網中面向連接、可靠的傳輸層協議&#xff0c;主要負責在不可靠的IP層上實現數據的可靠傳輸。其核心特點包括&#xff1a; 面向連接&#xff1a;通信前需通過三次握手&#xff08;SYN-SYN/ACK-ACK&#xff09;建…

12條熱門照片提示

12條熱門照片提示 1. 賽博朋克光彩 (Cyberpunk Glow-Up) 未在文件中顯示2. 卡通化我 (Cartoonify Me) Convert this image of [your subject here] into a 3D Pixar-style cartoon clean lines, soft lighting, expressive features, and a polished render that feels cine…

Java求職面試揭秘:從Spring到微服務的技術挑戰

文章簡述 在這篇文章中&#xff0c;我們將通過一個幽默的面試場景&#xff0c;揭秘互聯網大廠Java求職者在面試中面對的技術挑戰。面試官將從Spring框架、微服務架構到大數據處理等多個維度進行提問&#xff0c;并詳細講解這些技術點的應用場景和解決方案&#xff0c;幫助小白…