OpenCV CUDA模塊中矩陣操作------矩陣元素求和

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

算法描述

在OpenCV的CUDA模塊中,矩陣元素求和類函數主要用于計算矩陣元素的總和、絕對值之和以及平方和。這些操作對于圖像處理中的特征提取、質量評估等任務非常有用。

主要函數

矩陣所有元素的絕對值之和函數:absSum

原型

Scalar cv::cuda::absSum
(InputArray src,InputArray mask=noArray()
)

描述

返回矩陣所有元素的絕對值之和。

參數
  • src: 輸入矩陣(通常是cv::cuda::GpuMat)。
  • mask: 可選掩碼,指定哪些元素參與計算,默認為無掩碼。
返回值

返回一個Scalar類型的對象,包含每個通道的絕對值之和。

矩陣所有元素的絕對值之和函數:calcAbsSum

原型
void cv::cuda::calcAbsSum
(InputArray src,OutputArray dst,InputArray mask=noArray(), Stream& stream=Stream::Null()
)
描述

同cv::cuda::absSum,但結果存儲在一個輸出數組中。

參數
  • src: 輸入矩陣。
  • dst: 輸出標量,存儲計算結果。
  • mask: 可選掩碼。
  • stream: CUDA流用于異步執行(可選)。

計算所有元素的平方和函數sqrSum

原型
Scalar cv::cuda::sqrSum
(InputArray src,InputArray mask=noArray()
)

描述

返回矩陣所有元素的平方和。

參數

  • src: 輸入矩陣。
  • mask: 可選掩碼。
返回值

返回一個Scalar類型的對象,包含每個通道的平方和。

計算所有元素的平方和函數calcSqrSum

原型
void cv::cuda::calcSqrSum
(InputArray src, OutputArray dst, InputArray mask=noArray(), Stream& stream=Stream::Null()
)
描述

同cv::cuda::sqrSum,但結果存儲在一個輸出數組中。

參數
  • src: 輸入矩陣。
  • dst: 輸出標量,存儲計算結果。
  • mask: 可選掩碼。
  • stream: CUDA流用于異步執行(可選)。

計算矩陣所有元素的總和函數sum

原型
Scalar cv::cuda::sum
(InputArray src, InputArray mask=noArray()
)
描述

返回矩陣所有元素的總和。

參數
  • src: 輸入矩陣。
  • mask: 可選掩碼。
返回值

返回一個Scalar類型的對象,包含每個通道的總和。

計算矩陣所有元素的總和函數calcSum

原型
void cv::cuda::calcSum
(InputArray src, OutputArray dst, InputArray mask=noArray(), Stream& stream=Stream::Null()
)
描述

同cv::cuda::sum,但結果存儲在一個輸出數組中。

參數

  • src: 輸入矩陣。
  • dst: 輸出標量,存儲計算結果。
  • mask: 可選掩碼。
  • stream: CUDA流用于異步執行(可選)。

代碼示例

#include <iostream>
#include <opencv2/cudaarithm.hpp>
#include <opencv2/opencv.hpp>int main()
{// 創建一個測試矩陣(4x4浮點型)cv::Mat h_mat = ( cv::Mat_< float >( 4, 4 ) << 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 );// 將矩陣上傳到GPUcv::cuda::GpuMat d_mat;d_mat.upload( h_mat );// 計算絕對值之和cv::Scalar abs_sum = cv::cuda::absSum( d_mat );std::cout << "Absolute sum: " << abs_sum[ 0 ] << "\n";// 計算平方和cv::Scalar sqr_sum = cv::cuda::sqrSum( d_mat );std::cout << "Squared sum: " << sqr_sum[ 0 ] << "\n";// 計算總和cv::Scalar total_sum = cv::cuda::sum( d_mat );std::cout << "Total sum: " << total_sum[ 0 ] << "\n";// 使用 calcAbsSum 和其他類似函數cv::cuda::GpuMat d_abs_sum, d_sqr_sum, d_total_sum;cv::cuda::calcAbsSum( d_mat, d_abs_sum );cv::cuda::calcSqrSum( d_mat, d_sqr_sum );cv::cuda::calcSum( d_mat, d_total_sum );// 下載結果回主機double host_abs_sum, host_sqr_sum, host_total_sum;d_abs_sum.download( cv::Mat( 1, 1, CV_64F, &host_abs_sum ) );d_sqr_sum.download( cv::Mat( 1, 1, CV_64F, &host_sqr_sum ) );d_total_sum.download( cv::Mat( 1, 1, CV_64F, &host_total_sum ) );std::cout << "Downloaded absolute sum: " << host_abs_sum << "\n";std::cout << "Downloaded squared sum: " << host_sqr_sum << "\n";std::cout << "Downloaded total sum: " << host_total_sum << "\n";return 0;
}

運行結果

Absolute sum: 136
Squared sum: 1496
Total sum: -8
Downloaded absolute sum: 136
Downloaded squared sum: 1496
Downloaded total sum: -8

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

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

相關文章

給視頻加一個動畫。

為什么要給視頻加一個動畫&#xff1f; 很完整的視頻也就是從短動畫開始的。遮蓋住LOG用。 C:\Users\Sam\Desktop\desktop\startup\workpython\ocr Lottie.py import subprocessdef run_ffmpeg(cmd):print("Running:", " ".join(cmd))subprocess.run(cm…

15:00開始面試,15:06就出來了,問的問題有點變態。。。

從小廠出來&#xff0c;沒想到在另一家公司又寄了。 到這家公司開始上班&#xff0c;加班是每天必不可少的&#xff0c;看在錢給的比較多的份上&#xff0c;就不太計較了。沒想到4月一紙通知&#xff0c;所有人不準加班&#xff0c;加班費不僅沒有了&#xff0c;薪資還要降40%…

使用命令行拉取 Git 倉庫

1. 克隆遠程倉庫&#xff08;首次獲取&#xff09; # 克隆倉庫到當前目錄&#xff08;默認使用 HTTPS 協議&#xff09; git clone https://github.com/用戶名/倉庫名.git# 克隆倉庫到指定目錄 git clone https://github.com/用戶名/倉庫名.git 自定義目錄名# 使用 SSH 協議克隆…

如何禁止chrome自動更新

百度了一下 下面這個方法實測有效 目錄 1、WINR 輸入 services.msc 2、在Services彈窗中找到下面兩個service并disable 3、驗證是否禁止更新成功&#xff1a; 1、WINR 輸入 services.msc 2、在Services彈窗中找到下面兩個service并disable GoogleUpdater InternalService…

數據庫事務以及JDBC實現事務

一、數據庫事務 數據庫事務&#xff08;Database Transaction&#xff09;是數據庫管理系統中的一個核心概念&#xff0c;它代表一組操作的集合&#xff0c;這些操作要么全部執行成功&#xff0c;要么全部不執行&#xff0c;即操作數據的最小執行單元&#xff0c;保證數據庫的…

【vue】【環境配置】項目無法npm run serve,顯示node版本過低

解決方案&#xff1a;安裝高版本node&#xff0c;并且啟用高版本node 步驟&#xff1a; 1、查看當前版本 node -v2、配置nvm下載鏡像源 1&#xff09;查看配置文件位置 npm root2&#xff09;找到settings.txt文件 修改鏡像源為&#xff1a; node_mirror: https://npmmirro…

WPF之INotifyPropertyChanged實現

文章目錄 引言INotifyPropertyChanged接口基礎接口定義工作原理 基本實現方式標準實現示例CallerMemberName特性 高級實現技術基類實現通知多個屬性變化使用PropertyChanging事件 MVVM框架中的實現MVVM模式簡介MVVM框架中的實現Prism框架MVVM Light框架自定義MVVM基類 性能優化…

【MCP教程系列】SpringBoot 搭建基于 Spring AI 的 SSE 模式 MCP 服務

原文地址&#xff1a;https://developer.aliyun.com/article/1662946 在當今快速發展的AI技術背景下&#xff0c;如何高效地集成模型能力成為開發者關注的重點。本文將手把手教你如何基于 Spring AI 搭建支持 SSE&#xff08;Server-Sent Events&#xff09;模式的 MCP 服務 相…

springboot集成langchain4j實現票務助手實戰

前言 看此篇的前置知識為langchain4j整合springboot&#xff0c;以及springboot集成langchain4j記憶對話。 Function-Calls介紹 langchain4j 中的 Function Calls&#xff08;函數調用&#xff09;是一種讓大語言模型&#xff08;LLM&#xff09;與外部工具&#xff08;如 A…

MySQL-數據庫分布式XA事務

準備 innodb存儲引擎開啟支持分布式事務 set global innodb_support_axonMySQL數據庫XA事務的SQL語法如下&#xff1a; XA {START| BEGIN} xid {JOIN | RESUME} XA END xid {SUSPEND [ FOR MIGRATE]} XA PREPARE xid XA COMMIT xid [ONE PHASE] XA ROLLBACK xid XA RECOVER 完…

SAP 運維-冷門問題解決辦法

1.SAP Fiori幫助菜單鏈接如何配置&#xff1f; 答&#xff1a; 執行事務代碼HELP_CONFIG&#xff0c;選擇對應的Fiori部署模式&#xff0c;配置幫助菜單下的URL鏈接。 檢查配置的幫助菜單&#xff0c;執行事務代碼/N//UI2/FLP_CUS_CONF 或者SR13進行查看配置狀態與修改。

新型智慧園區技術架構深度解析:數字孿生與零碳科技的融合實踐

&#x1f3ed;在杭州亞運村零碳園區&#xff0c;光伏板與氫燃料大巴構成的能源網絡&#xff0c;正通過數字孿生技術實現智能調度。這不僅是格力電器與龍源電力在新能源領域的創新實踐&#xff0c;更是智慧園區4.0時代的標桿案例。當AI算法開始接管能源調度&#xff0c;當BIM建模…

Java轉Go日記(三十六):簡單的分布式

1.1.1. 簡單的分布式server 目前分布式系統已經很流行了&#xff0c;一些開源框架也被廣泛應用&#xff0c;如dubbo、Motan等。對于一個分布式服務&#xff0c;最基本的一項功能就是服務的注冊和發現&#xff0c;而利用zk的EPHEMERAL節點則可以很方便的實現該功能。EPHEMERAL節…

機器學習筆記——特征工程

大家好&#xff0c;這里是好評筆記&#xff0c;公主號&#xff1a;Goodnote&#xff0c;專欄文章私信限時Free。本筆記介紹機器學習中常見的特征工程方法、正則化方法和簡要介紹強化學習。 文章目錄 特征工程&#xff08;Fzeature Engineering&#xff09;1. 特征提取&#xff…

在 Ubuntu 20.04.6 LTS 中將 SCons 從 3.1.2 升級到 4.9.1

在 Ubuntu 20.04.6 LTS 中將 SCons 從 3.1.2 升級到 4.9.1&#xff0c;可以通過以下步驟完成&#xff1a; 方法 1&#xff1a;使用 pip 安裝&#xff08;推薦&#xff09; 步驟 1&#xff1a;卸載舊版本 SCons # 如果通過 apt 安裝的舊版本&#xff0c;先卸載 sudo apt remov…

LeetCode熱題100--234.回文鏈表--簡單

1. 題目 給你一個單鏈表的頭節點 head &#xff0c;請你判斷該鏈表是否為回文鏈表。如果是&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false 。 示例 1&#xff1a; 輸入&#xff1a;head [1,2,2,1] 輸出&#xff1a;true 示例 2&#xff1a; 輸入&#xf…

【markdown】介紹如何在markdown中繪制流程圖

在 Markdown 中編寫流程圖主要通過 ??Mermaid 語法??實現&#xff08;多數平臺如 GitHub、VS Code、Typora 已原生支持&#xff09;。以下是詳細方法&#xff1a; 1. 基礎流程圖?? 語法結構 用 mermaid 包裹代碼塊&#xff0c;指定方向后定義節點和連接線&#xff1a…

Java中使用自定義序列化器:自動添加View字段的實現與應用

Java 中 BigDecimal 序列化器:自動添加 View 返回字段的實現與應用 在 Java 開發過程中,數據的序列化與反序列化是非常重要的環節。當我們處理數值類型數據,特別是BigDecimal類型時,有時需要在序列化輸出中添加額外的視圖字段,以滿足前端展示或者特定業務需求。本文將通過…

Java類一文分解:JavaBean,工具類,測試類的深度剖析

解鎖Java類的神秘面紗&#xff1a;從JavaBean到測試類的深度剖析 前言一、JavaBean 類&#xff1a;數據的守護者&#xff08;一&#xff09;JavaBean 類是什么&#xff08;二&#xff09;JavaBean 類的特征&#xff08;三&#xff09;JavaBean 類的使用場景&#xff08;四&…

機器學習-- 線性回歸、邏輯回歸

線性回歸 線性回歸是一種統計方法,用于發現變量之間的關系。在機器學習背景下,線性回歸可找出特征(Feature)與標簽(Lable)之間的關系。 例如,假設我們想要根據汽車的重量預測汽車的每加侖汽油行駛里程(mpg),并且我們有以下數據集: 線性回歸方程 Linear regressi…