OpenCV CUDA模塊圖像變形------對圖像進行GPU加速的仿射變換函數warpAffine()

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

算法描述

該函數用于對圖像進行 GPU 加速的仿射變換(Affine Transformation),是 cv::warpAffine 的 CUDA 版本。支持平移、旋轉、縮放、翻轉等常見幾何變換操作。

函數原型

void cv::cuda::warpAffine 	
(InputArray  	src,OutputArray  	dst,InputArray  	M,Size  	dsize,int  	flags = INTER_LINEAR,int  	borderMode = BORDER_CONSTANT,Scalar  	borderValue = Scalar(),Stream &  	stream = Stream::Null() 
) 		

參數

參數名說明
src源圖像。支持像素深度為 CV_8UCV_16UCV_32SCV_32F 的圖像,通道數為 1、3 或 4。
dst目標圖像,類型與 src 相同,尺寸為 dsize
M2x3 的仿射變換矩陣(Mat 或 UMat 類型)。
dsize目標圖像的尺寸(寬 x 高)。
flags插值方法組合(參考 resize 函數),以及可選標志 WARP_INVERSE_MAP,表示 M 是一個逆變換(即從目標圖像到源圖像的映射)。僅支持 INTER_NEARESTINTER_LINEARINTER_CUBIC 插值方法。
borderMode像素外推方法(邊界填充方式)。
borderValue邊界填充值,默認為黑色(0)。
stream用于異步版本的 CUDA 流對象。

代碼示例

#include <opencv2/cudawarping.hpp>
#include <opencv2/opencv.hpp>int main()
{// 讀取圖像cv::Mat h_src = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_COLOR );if ( h_src.empty() ){std::cerr << "無法加載圖像!" << std::endl;return -1;}// 上傳到 GPUcv::cuda::GpuMat d_src, d_dst;d_src.upload( h_src );// 構造仿射變換矩陣:繞中心旋轉 30 度cv::Point2f center( h_src.cols / 2.0F, h_src.rows / 2.0F );cv::Mat M = cv::getRotationMatrix2D( center, 30, 1.0 );// 設置輸出尺寸cv::Size dsize( h_src.cols, h_src.rows );// 執行仿射變換cv::cuda::warpAffine( d_src, d_dst, M, dsize, cv::INTER_LINEAR, cv::BORDER_CONSTANT, cv::Scalar() );// 下載并顯示結果cv::Mat h_dst;d_dst.download( h_dst );cv::imshow( "Original Image", h_src );cv::imshow( "Warped Image", h_dst );cv::waitKey( 0 );return 0;
}

在這里插入圖片描述

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

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

相關文章

語音增強方法

一、音量增強 音量增強&#xff0c;顧名思義就是音量的調大和調小&#xff0c;通過對音量進行增強可以使得模型更好的泛化。防止數據只有小音量時&#xff0c;當有大音量傳入時模型不能很好的進行識別。 下面是我對音量增強生成頻譜圖進行可視化的結果 上面的一個圖片是音量…

內網滲透測試技巧與利用操作手冊(SMB / MSSQL / LDAP)

SMB 枚舉與利用清單 &#x1f50d; SMB 枚舉與連接 # 嘗試空會話連接&#xff08;Null Session&#xff09; smbclient -N -U "" -L \\<IP> smbclient -N -U "test" -L \\<IP> smbclient -N -U "Guest" -L \\<IP># 下載共享…

ADB(Android Debug Bridge)Android官方調試工具及常用命令

ADB的定義 ADB&#xff08;Android Debug Bridge&#xff09;是Android官方提供的調試工具&#xff0c;屬于Android SDK的一部分。它通過命令行與Android設備通信&#xff0c;支持安裝應用、調試、文件傳輸、日志抓取等功能&#xff0c;適用于開發、測試及高級用戶場景。 ADB工…

再現重大BUG,微軟緊急撤回Win 11六月更新

BUG年年有&#xff0c;今年特別多&#xff01; Windows 11發布這近4年來&#xff0c;咱們算是一路見證了其「要么在修復BUG&#xff0c;要么在修復BUG路上」這么一件壯舉。 最新的6月Windows 11 24H2更新&#xff08;版本號KB5060842&#xff09;&#xff0c;微軟帶來了多項改…

ROS2 工作空間中, CMakeLists.txt, setup.py和 package.xml的作用分別是?

提問 ROS2 工作空間中, CMakeLists.txt&#xff0c; setup.py和 package.xml的作用分別是&#xff1f; 回答 在一個 ROS 2 包&#xff08;package&#xff09;里&#xff0c;這三個文件各司其職&#xff1a; package.xml 作用&#xff1a;聲明包的元信息和依賴關系&#xff…

Untiy打包安卓踩坑

Untiy 版本&#xff1a;unity6.1 運行環境&#xff1a;Win11 報錯一&#xff1a; Assembly ‘Assets/ExternalDependencyManager/Editor/1.2.183/Google.IOSResolver.dll’ will not be loaded due to errors: 解決方法&#xff1a;通過在 Unity Hub 中下載 iOS 包來解決 報錯…

2025最新版!Windows Python3 超詳細安裝圖文教程(支持 Python3 全版本)

大家好&#xff0c;我是你們的編程搬磚工~ 今天給大家安排一篇超級詳細、超接地氣、純小白友好的《Python 安裝教程 for Windows》&#xff0c;從下載到安裝&#xff0c;從環境變量到驗證&#xff0c;手把手帶你裝好 Python&#xff0c;不管你是 Python3.7、3.9、3.10 還是 3.1…

【IEEE/EI/Scopus檢索】2025年第五屆機器學習與大數據管理國際會議 (MLBDM 2025)

2025年第五屆機器學習與大數據管理國際會議 (MLBDM 2025) 2025 5th International Conference on Machine Learning and Big Data Management(MLBDM 2025)會議地點&#xff1a;南京&#xff0c;中國 時間&#xff1a;2025年12月26日- 28日 ● 會議簡介 2025年第五屆機器學習…

前端實現ios26最新液態玻璃效果!

先看效果圖 實現步驟 先定義玻璃元素和液態濾鏡 <!--玻璃容器--> <div class"glass-container"><!--使用液態濾鏡--><div class"glass-filter"></div><!--邊沿效果--><div class"glass-specular">…

麒麟系統集成開發環境Kylin-IDE初體驗,菜鳥小白入門教程

一、安裝Kylin-IDE 1、打開應用商店&#xff0c;轉到“軟件”->“開發”頁面&#xff0c;找到“Kylin-IDE”&#xff0c;點下載。&#xff08;也可以在搜索欄搜索Kylin-IDE&#xff09; 2、等待Kylin-IDE下載并自動安裝完成。 3、雙擊桌面的Kylin-IDE圖標。 4、自動彈出“開…

Python爬蟲實戰:研究Bleach庫相關技術

一、引言 1.1 研究背景與意義 隨著互聯網的快速發展,網絡上的數據量呈爆炸式增長。網絡爬蟲作為一種自動獲取網頁內容的技術,能夠高效地從互聯網上收集所需信息,為數據分析、信息檢索、輿情監測等應用提供基礎。然而,爬取到的網頁內容往往包含大量的 HTML 標簽、JavaScri…

分布假設學習筆記

文章目錄 分布假設學習筆記自然語言處理中的分布假設應用場景適用范圍 Word2vec、BERT和GPTWord2vecBERTGPT 假設成立嗎 分布假設學習筆記 自然語言處理中的分布假設 分布假設&#xff08;Distributional Hypothesis&#xff09;是指&#xff1a;詞語在相似上下文中出現&…

提升開發思維的設計模式(上)

1. 設計模式簡介 [設計模式]&#xff08;Design pattern&#xff09; 是解決軟件開發某些特定問題而提出的一些解決方案也可以理解成解決問題的一些思路。通過設計模式可以幫助我們增強代碼的[可重用性]、可擴充性、 可維護性、靈活性好。我們使用設計模式最終的目的是實現代碼…

LINUX613計劃測put

FTP put ┌────────────────────────────────────────────────────────────────────┐│ ? MobaXterm 20.0 ? ││ (SSH client, X-serv…

NB-IoT-下行同步、廣播信道和信號

這一篇主要講解以下NPSS/NSSS/NPBCH信號的具體細節。還是依然先分析時頻資源&#xff0c;再分析具體信號細節。 1、NPSS信道和信號 NPSS信號總是在每個無線幀的子幀5上。使用符號為3~13個OFDM符號&#xff0c;子載波使用0~10號&#xff08;11個子載波&#xff09;。如果部署為…

Java TCP網絡編程核心指南

Java網絡編程中TCP通信詳解 TCP (Transmission Control Protocol) 是互聯網中最核心的傳輸層協議&#xff0c;提供可靠的、面向連接的字節流傳輸服務。在Java網絡編程中&#xff0c;TCP通信主要通過Socket和ServerSocket類實現。 一、TCP核心特性與Java實現 特性描述Java實現…

SVN遷移Git(保留歷史提交記錄)

第一步&#xff1a;安裝git 下載地址&#xff1a;https://gitforwindows.org/ 第二步&#xff1a;先創建一個git創庫&#xff0c;&#xff08;創建過程忽略&#xff09; 第三步&#xff1a;本地新建一個空的項目文件夾&#xff0c;用于存放要遷移的項目代碼&#xff0c;我這創…

9.IP數據包分片計算

IP數據報分片計算 題目1&#xff1a;主機發送5400字節數據&#xff0c;MTU1400字節&#xff08;IPv4&#xff09;&#xff0c;填寫分片后的字段值。 解答&#xff1a; 分片規則&#xff1a; 每片數據長度盡量接近MTU&#xff08;1400B&#xff09;&#xff0c;IP首部20B&…

pmset - 控制 macOS 系統電源、睡眠、喚醒與節能

文章目錄 NAME概要描述SETTINGSETTINGSGETTING安全睡眠參數待機參數UPS 專用參數計劃事件參數電源參數說明其他參數示例另請參閱文件 NAME pmset – manipulate power management settings概要 pmset [-a | -b | -c | -u] [setting value] [...]pmset -u [haltlevel percent]…

網絡安全防護:點擊劫持

目錄 1、概念 2、攻擊原理&#xff1a;視覺欺騙與層疊控制 3、點擊劫持的危害 4、防御點擊劫持 4.1 X-Frame-Options HTTP 響應頭 (最直接有效) 4.2 Content-Security-Policy (CSP) HTTP 響應頭 (現代、更強大) 4.3 客戶端 JavaScript 防御 (Frame Busting) 1、概念 點…