OpenCV CUDA模塊圖像處理------雙邊濾波的GPU版本函數bilateralFilter()

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

算法描述

該函數在 GPU 上執行雙邊濾波操作,是一種非線性平滑濾波器,能夠在 保留邊緣的同時去除噪聲。

函數原型

void cv::cuda::bilateralFilter 	
(InputArray  	src,OutputArray  	dst,int  	kernel_size,float  	sigma_color,float  	sigma_spatial,int  	borderMode = BORDER_DEFAULT,Stream &  	stream = Stream::Null() 
) 		

參數

  • src 源圖像。支持的條件為:通道數不等于 2,且圖像深度不能是 CV_8S、CV_32S 和 CV_64F。

  • dst 目標圖像(輸出圖像)。

  • kernel_size 濾波核窗口大小。

  • sigma_color 顏色空間中的濾波參數(標準差),用于控制顏色差異的影響程度。

  • sigma_spatial 坐標空間中的濾波參數(標準差),用于控制空間距離的影響程度。

  • borderMode 邊界類型。具體細節請參見 borderInterpolate 函數。目前支持的邊界模式包括:

    • BORDER_REFLECT101
    • BORDER_REPLICATE
    • BORDER_CONSTANT
    • BORDER_REFLECT 和 BORDER_WRAP
  • stream 用于異步執行的流(Stream)。若使用默認值 Stream::Null(),則函數為同步執行。

代碼示例

#include <iostream>
#include <opencv2/cudaimgproc.hpp>
#include <opencv2/opencv.hpp>int main()
{// Step 1: 讀取圖像cv::Mat h_img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_COLOR );if ( h_img.empty() ){std::cerr << "Failed to load image!" << std::endl;return -1;}// Step 2: 將圖像上傳到 GPUcv::cuda::GpuMat d_img, d_dst;d_img.upload( h_img );// Step 3: 執行雙邊濾波int kernel_size     = 5;float sigma_color   = 25.0f;float sigma_spatial = 30.0f;int borderMode      = cv::BORDER_DEFAULT;cv::cuda::bilateralFilter( d_img, d_dst, kernel_size, sigma_color, sigma_spatial, borderMode );// Step 4: 下載結果并顯示cv::Mat h_dst;d_dst.download( h_dst );cv::imshow( "Original", h_img );cv::imshow( "Denoised (Bilateral)", h_dst );cv::waitKey( 0 );return 0;
}

運行結果

在這里插入圖片描述

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

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

相關文章

Perplexity AI:重塑你的信息探索之旅

在信息爆炸的時代&#xff0c;如何快速、精準地獲取所需知識&#xff0c;并將其轉化為行動力&#xff1f;答案或許就藏在 Perplexity AI 這款強大的智能工具中。它不僅僅是一個搜索引擎&#xff0c;更是一個能理解你、與你對話、為你深度解析信息的智能伙伴。告別繁瑣的信息篩選…

Java高級反射實戰:15個場景化編程技巧與底層原理解析

引用 在Java的世界里&#xff0c;反射機制如同賦予開發者一把“萬能鑰匙”&#xff0c;它打破了靜態編程的邊界&#xff0c;讓代碼在運行時擁有動態獲取類信息、操作對象屬性和方法的能力。從Spring框架的依賴注入&#xff0c;到MyBatis的SQL映射生成&#xff1b;從JSON序列化…

構建 MCP 服務器:第 3 部分 — 添加提示

這是我們構建 MCP 服務器的四部分教程的第三部分。在第一部分中&#xff0c;我們使用基本資源創建了第一個MCP 服務器&#xff1b;在第二部分中&#xff0c;我們添加了資源模板并改進了代碼組織。現在&#xff0c;我們將進一步重構代碼并添加提示功能。 什么是 MCP 提示&#…

MySQL 索引優化(Explain執行計劃) 詳細講解

&#x1f91f;致敬讀者 &#x1f7e9;感謝閱讀&#x1f7e6;笑口常開&#x1f7ea;生日快樂?早點睡覺 &#x1f4d8;博主相關 &#x1f7e7;博主信息&#x1f7e8;博客首頁&#x1f7eb;專欄推薦&#x1f7e5;活動信息 文章目錄 MySQL 索引優化&#xff08;Explain執行計劃…

使用 IntelliJ IDEA 安裝通義靈碼(TONGYI Lingma)插件,進行后端 Java Spring Boot 項目的用戶用例生成及常見問題處理

一、什么是通義靈碼&#xff08;TONGYI Lingma&#xff09;&#xff1f; 通義靈碼是阿里巴巴推出的智能代碼輔助工具&#xff0c;結合大模型技術&#xff0c;支持代碼生成、用例生成、代碼補全等功能&#xff0c;能極大提升開發效率。 二、在 IDEA 中安裝通義靈碼插件 打開 In…

AI編程在BOSS項目的實踐經驗分享

前言 在人工智能技術革新浪潮的推動下&#xff0c;智能編程助手正以前所未有的速度重塑開發領域。這些基于AI的代碼輔助工具通過智能提示生成、實時錯誤檢測和自動化重構等功能&#xff0c;顯著提升了軟件工程的全流程效率。無論是初入行業的開發者還是資深程序員&#xff0c;…

JVM 類加載器 詳解

類加載器 兩個類來源于同一個 Class文件&#xff0c;被同一個Java虛擬機加載&#xff0c;只要加載它們的類加載器不同&#xff0c;那這兩個類就必定不相等 這里所指的“相等”&#xff0c;包括代表類的Class對象的equals()方法、isAssignableFrom()方法、isInstance()方法的返…

Javascript 編程基礎(5)面向對象 | 5.1、構造函數實例化對象

文章目錄 一、構造函數實例化對象1、基本語法2、構造函數與原型的關系3、完整的原型鏈4、構造函數的特點5、prototype與__proto__屬性5.1、對象實例的__proto__屬性5.2、prototype屬性僅存在于函數對象5.3、實例與原型的關系5.4、獲取對象原型 6、注意事項 前言&#xff1a; 在…

自動駕駛科普(百度Apollo)學習筆記

1. 寫在前面 在過去的幾年里&#xff0c;自動駕駛技術取得飛速發展&#xff0c;人類社會正逐漸走向一個新時代&#xff0c;這個時代中&#xff0c;汽車不僅僅是一個交通工具&#xff0c;更是一個智能的、能夠感知環境、做出決策并自主導航的機器伙伴。現在正好也從事這塊的工作…

Windows應用-音視頻捕獲

下載“Windows應用-音視頻捕獲”項目 本應用可以同時捕獲4個視頻源和4個音頻源&#xff0c;可以監視視頻源圖像&#xff0c;監聽音頻源&#xff1b;可以將視頻源圖像寫入MP4文件&#xff0c;將音頻源寫入MP3或WAV文件&#xff1b;還可以錄制系統播放的聲音。本應用使用MFC對話框…

MATLAB生成大規模無線通信網絡拓撲(任意節點數量)

功能&#xff1a; 生成任意節點數量的網絡拓撲&#xff0c;符合現實世界節點空間分布和連接規律 效果&#xff1a; 30節點&#xff1a; 100節點&#xff1a; 500節點&#xff1a; 程序&#xff1a; %創建時間&#xff1a;2025年6月8日 %zhouzhichao %自然生長出n節點的網絡% …

TDengine 開發指南—— UDF函數

UDF 簡介 在某些應用場景中&#xff0c;應用邏輯需要的查詢功能無法直接使用內置函數來實現&#xff0c;TDengine 允許編寫用戶自定義函數&#xff08;UDF&#xff09;&#xff0c;以便解決特殊應用場景中的使用需求。UDF 在集群中注冊成功后&#xff0c;可以像系統內置函數一…

C#提取CAN ASC文件時間戳:實現與性能優化

C#提取CAN ASC文件時間戳&#xff1a;實現與性能優化 在汽車電子和工業控制領域&#xff0c;CAN總線是最常用的通信協議之一。而ASC&#xff08;ASCII&#xff09;文件作為CAN總線數據的標準日志格式&#xff0c;廣泛應用于數據記錄和分析場景。本文將深入探討如何高效地從CAN…

計算機網絡基礎總結:TCP/IP 模型、TCP vs UDP、DNS 查詢過程

在學習計算機網絡的過程中&#xff0c;理解 TCP/IP 模型與 OSI 模型的對應關系、掌握 TCP 與 UDP 的區別&#xff0c;以及熟悉 DNS 的查詢過程&#xff0c;是打好網絡基礎的關鍵。本文將圍繞這三部分進行簡明扼要的講解。 一、TCP/IP 模型與 OSI 七層模型的對應關系 1. OSI 七…

基于PHP的扎染文創產品商城

有需要請加文章底部Q哦 可遠程調試 基于PHP的扎染文創產品商城 一 介紹 扎染文創產品商城系統基于原生PHP開發&#xff0c;數據庫mysql&#xff0c;前端bootstrap&#xff0c;jquery.js等。系統角色分為用戶和管理員。 技術棧&#xff1a;phpmysqlbootstrapphpstudyvscode 二…

數據庫學習(三)——MySQL鎖

一、MySQL鎖 當多個用戶或進程并發操作數據庫時&#xff0c;為了避免數據沖突、臟讀、不可重復讀、幻讀等問題&#xff0c;數據庫通過鎖機制來保證數據的一致性和完整性。 MySQL 鎖的總體分類&#xff1a; 分類維度類型說明按作用對象表級鎖&#xff08;Table Lock&#xff…

<3>-MySQL表的操作

目錄 一&#xff0c;創建表 二&#xff0c;查看表結構 三&#xff0c;修改表 四&#xff0c;刪除表 一&#xff0c;創建表 語法&#xff1a; CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校驗規則 eng…

【OSG學習筆記】Day 15: 路徑動畫與相機漫游

本章來學習下漫游相機。 路徑動畫與相機漫游 本屆內容比較簡單&#xff0c;其實就是實現物體的運動和相機的運動 當然這兩個要一起執行。 貝塞爾曲線 貝塞爾曲線&#xff08;Bzier curve&#xff09;是一種在計算機圖形學、動畫制作、工業設計等領域廣泛應用的參數曲線&am…

LabVIEW自感現象遠程實驗平臺

LabVIEW開發自感現象遠程實驗平臺&#xff0c;通過整合 NI數據采集設備、菲尼克斯&#xff08;Phoenix Contact&#xff09;繼電器模塊及羅技&#xff08;Logitech&#xff09;高清攝像頭&#xff0c;實現遠程數據采集、儀器控制與實時監控三大核心功能。平臺突破傳統實驗裝置局…

數據結構——F/圖

一、圖的基本概念 圖是由頂點集合及頂點間的關系組成的一種數據結構&#xff1a;G (V&#xff0c; E)&#xff0c;其中&#xff1a; 頂點集合V {x|x屬于某個數據對象集}是有窮非空集合&#xff1b; E {(x,y)|x,y屬于V}或者E {<x, y>|x,y屬于V && Path(x, y)…