OpenCV CUDA模塊設備層-----反正弦運算函數asin()

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

算法描述

對一個 uchar 類型的像素值(范圍 [0, 255]),先歸一化到浮點范圍 [0.0, 1.0],然后計算其反正弦值 asin(x),最終返回一個 float1 類型的結果。

函數原型

__device__ __forceinline__ float1 cv::cudev::asin 	( 	const uchar1 &  	a	) 	

參數

  • uchar1 CUDA 向量類型,表示一個單通道的 8 位無符號整型(等價于 unsigned char 或 uint8_t)。

代碼示例


#include <opencv2/opencv.hpp>
#include <opencv2/cudev/common.hpp>
#include <opencv2/cudev/functional/functional.hpp>
#include <opencv2/cudev/util/vec_math.hpp>__global__
void apply_asin_kernel(const uchar* input, float* output, int width, int height) {int x = blockIdx.x * blockDim.x + threadIdx.x;int y = blockIdx.y * blockDim.y + threadIdx.y;if (x >= width || y >= height)return;int idx = y * width + x;uchar raw_value = input[idx];float normalized = raw_value / 255.0f;// 確保在定義域內if (normalized < -1.0f) normalized = -1.0f;if (normalized > 1.0f) normalized = 1.0f;output[idx] = asinf(normalized);
}int main() {// 創建測試圖像(uchar類型,單通道)cv::Mat h_img = cv::Mat::zeros(480, 640, CV_8UC1);cv::randu(h_img, cv::Scalar::all(0), cv::Scalar::all(255));// 將輸入上傳到設備cv::cuda::GpuMat d_img;d_img.upload(h_img);// 創建輸出設備內存(float1)cv::cuda::GpuMat d_out;d_out.create(d_img.size(), CV_32FC1);// 獲取原始指針const uchar* d_input = d_img.ptr<uchar>();float* d_output = d_out.ptr<float>();// 設置 CUDA 線程塊大小dim3 blockSize(16, 16);dim3 gridSize((d_img.cols + blockSize.x - 1) / blockSize.x,(d_img.rows + blockSize.y - 1) / blockSize.y);// 啟動核函數apply_asin_kernel<<<gridSize, blockSize>>>(d_input, d_output, d_img.cols, d_img.rows);// 下載結果到主機cv::Mat h_out;d_out.download(h_out);// 顯示部分結果std::cout << "First pixel (uchar): " << (int)h_img.at<uchar>(0, 0) << std::endl;std::cout << "After asin (float): " << h_out.at<float>(0, 0) << std::endl;return 0;
}

運行結果

First pixel (uchar): 91
After asin (float): 0.364907

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

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

相關文章

PixiJS 中 HTMLText 富文本渲染問題探究與優化思考?

起因 在使用 PixiJS 進行富文本渲染開發過程中&#xff0c;遭遇 HTMLText 組件處理中文字體加載時出現顯著卡頓現象。針對此問題&#xff0c;在開源社區提交 issue 并附上相關技術細節與運行表現&#xff0c;期望獲得解決方案。 提issues 從 issue 反饋內容來看&#xff0c;項目…

五、Redis的IO模型

簡介 在談及Redis為什么快的時候&#xff0c;很多人都只能回答redis是基于內存&#xff0c;所以快。但他們往往不知道&#xff0c;決定redis快的因素&#xff0c;還有它的IO模型-Reactor模型。談及Redis的IO模型之前&#xff0c;先補充一下IO模型的基礎知識。 IO模型演化 1.堵塞…

Cesium、ThreeWebGL詳解(二)渲染引擎向GPU傳數據、性能優化、引擎對比

下面從 API 定位、坐標體系、性能表現、面試常問點幾個維度詳細對比 Cesium、Three.js 與原生 WebGL 的繪制差異。 &#x1f9ed; 1. API 定位與典型應用 Cesium 聚焦全地球 GIS 場景&#xff0c;支持地形、影像、時空動態等地理信息功能&#xff0c;是專業級地圖應用首選。 T…

單點登錄(SSO)系統

設計一個 Java 單點登錄&#xff08;SSO&#xff09;系統需要解決跨系統認證和會話共享問題。以下是核心設計和實現方案&#xff0c;包含關鍵組件和代碼示例&#xff1a; 一、核心概念 認證中心 (Auth Center)&#xff1a;中央身份驗證服務令牌 (Token)&#xff1a;用戶身份憑…

《信息技術》科技核心期刊推薦

【科研必看】《信息技術》——科技核心期刊&#xff0c;助力你發表高影響力論文&#xff01; 如果你是一位科研工作者、學者或者在校學生&#xff0c;正在為發表論文而努力&#xff0c;那么《信息技術》期刊無疑是你不可錯過的選擇&#xff01;這本期刊以其卓越的學術影響力&am…

界面組件DevExpress WPF中文教程:Grid - 如何遍歷節點?

DevExpress WPF擁有120個控件和庫&#xff0c;將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有著強大互動功能的XAML基礎應用程序&#xff0c;這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件…

2D寫實交互數字人:讓AI形象擁有“真人溫度“的技術革命

在人工智能技術日新月異的今天&#xff0c;數字人已不再是科幻電影中的概念&#xff0c;而是逐步滲透到我們日常生活的各個領域。然而&#xff0c;市場上大多數數字人產品仍停留在"能說會動"的初級階段&#xff0c;缺乏真正的情感交互能力&#xff0c;這種"機械…

2025 年拓客系統排行榜

在數字化營銷時代&#xff0c;拓客系統成為企業獲取客戶資源、提升銷售效率的關鍵工具。以下為您盤點 2025 年表現出色的中文名字拓客系統&#xff0c;其中 微拓客 憑借強大功能脫穎而出&#xff0c;成為眾多從業者的首選。 一、微拓客&#xff1a;精準拓客的全能王者 微拓客堪…

TikTok 矩陣如何快速漲粉

在社交媒體的廣袤天地里&#xff0c;TikTok 以其強大的影響力和龐大的用戶基礎&#xff0c;成為眾多創作者和品牌競相角逐的舞臺。構建 TikTok 矩陣&#xff0c;是擴大影響力、實現快速漲粉的有效策略。那么&#xff0c;究竟如何讓 TikTok 矩陣快速漲粉呢&#xff1f;下面將為您…

基于微信小程序和云開發的企業綠色融資平臺的設計與實現

文章目錄 摘要前言緒論1. 課題背景2. 國內外現狀與趨勢2.1 國內研究現狀2.2 國外研究現狀2.3 發展趨勢3. 課題內容相關技術與方法介紹1. 微信小程序開發技術2. 騰訊云開發平臺3. 綠色項目評估模型4. 智能匹配算法5. 碳核算方法系統分析1. 需求分析1.1 用戶需求1.2 功能需求1.3 …

如何自建服務器并開啟公網IP:本地內網網址讓外網訪問詳細教學

本地內網環境自建服務器后&#xff0c;如何讓外網訪問&#xff0c;提供互聯網連接服務呢&#xff1f;有不少方法都可以實現&#xff0c;常見的有如公網IP、DDNS動態域名、nat123內網穿透等&#xff0c;下面詳細教學。 一、申請開公網IP-----------------公網IP篇-------------…

企業公用電腦登錄安全管控的終極方案:ASP操作系統安全登錄管控方案

一、引言&#xff1a;公用電腦——企業安全管理的“灰色地帶” 在企業辦公場景中&#xff0c;公用電腦&#xff08;如會議室電腦、生產線終端、客服工位&#xff09;因多用戶共用、權限復雜&#xff0c;往往成為安全管理的薄弱環節。員工隨意登錄、弱密碼泛濫、敏感數據泄露事…

HarmonyOS-ArkTS開發指南:從基礎到實戰

目錄 一、基礎語法 二、聲明式 UI 開發 基本組件結構 三、狀態管理 四、生命周期鉤子 五、組件化開發 1. 創建自定義組件 2. 組件嵌套 六、事件處理 七、布局系統 八、樣式設置 九、條件渲染與列表渲染 十、異步操作 十一、路由導航 開發建議 一、基礎語法 ArkT…

算法-Day04

今天還是給大家分享幾道題目&#xff0c;希望大家可以好好理解。 第一題 問題描述 小藍有一天誤入了一個混境之地。 好消息是&#xff1a;他誤打誤撞拿到了一張地圖&#xff0c;并從中獲取到以下信息&#xff1a; 混境之地是一個 n?m大小的矩陣&#xff0c;這個地圖中一共…

Git版本控制詳細資料

Git安裝基本配置 下載安裝(一路next) 打開bash終端&#xff08;git專用&#xff09; 命令: git -v(查看版本號) 配置: 用戶名和郵箱,應用在每次提交代碼版本時表明自己身份 命令: git config --global user.name "FT" git config --global user.email "F…

利用井云平臺把Coze工作流接入小程序/網站封裝變現 | 詳細步驟→

今天來看看怎么把Coze工作流接入井云生成你的專屬網站/小程序&#xff01; 當前已支持三大模塊接入&#xff1a;? 工作流 ? 智能體 ? 外部網頁 本文所用工具 1、扣子&#xff1a;www.coze.cn 2、井云智能體&#xff1a;jingyun.center 為什么選擇井云平臺&#xff1f; …

linux weston flutter remote desktop

參考:Outputs — weston 14.0.90 documentation Weston 14.0: DRM-backend, color management, and output mirroring Weston 14.0: DRM-backend, color management, and output mirroring ??? 3. DRM 輸出可鏡像至遠程輸出(RDP、VNC、PipeWire) 這次更新還帶來了一個…

GitHub Copilot 是什么,怎么使用

GitHub Copilot 是一個由 GitHub 和 OpenAI 聯合開發的 AI 編程助手&#xff0c;它可以在你寫代碼的時候自動給出建議、補全代碼&#xff0c;甚至生成整個函數或算法。它就像一個“聰明的副駕駛”&#xff0c;時刻在你旁邊協助你寫代碼。 簡單解釋&#xff1a; GitHub Copilot …

Android系統及應用QUIC協議支持詳解

QUIC協議在Android中的全面支持與實踐指南 本文深入探討QUIC協議在Android中的實現細節&#xff0c;涵蓋基礎原理、開發技巧、性能優化及前沿擴展&#xff0c;提供完整的Kotlin代碼示例和工程實踐指南。 1. QUIC協議核心優勢 QUIC&#xff08;Quick UDP Internet Connections&…

.NET基于類名約定的自動依賴注入完整指南

&#x1f680; .NET基于類名約定的自動依賴注入完整指南 基于類名約定的自動依賴注入可大幅減少手動注冊服務的工作量&#xff0c;本文將通過清晰的結構、美觀的排版和豐富的示例&#xff0c;幫助你快速掌握這一實用技術。 &#x1f308; 核心特性概覽 特性說明類名約定自動…