【閱讀筆記】基于雙邊濾波改進的空域濾波算法

一、雙邊濾波空域濾波算法

雙邊濾波是一種典型的非線性濾波算法。基于高斯濾波,雙邊濾波利用強度的變化來保存邊緣信息,解決了邊緣模糊在視覺觀感上認為重要信息丟失的問題。雙邊濾波的濾波效果主要取決于兩個參數:兩個像素的空間鄰近性和灰度相似性。當處于紋理較簡單區域時,濾波效果主要受空間鄰近度的影響;當處于紋理較復雜及邊緣區域時,灰度相似度起決定性作用。但本質上,雙邊濾波是一種鄰域像素加權平均的濾波器,會導致圖像特征模糊

1.1 傳統雙邊濾波 (Bilateral Filter,記作 BF)

Y ( i ) = 1 W i ∑ j ∈ S G σ d ( i , j ) G σ r ( X i , X j ) X j Y(i) = \frac{1}{W_{i}}\sum_{j\in{S}}G_{\sigma d}(i,j)G_{\sigma r}(X_i,X_j)X_{j} Y(i)=Wi?1?jS?Gσd?(i,j)Gσr?(Xi?,Xj?)Xj?

其中, X X X 是待處理的圖像,i,j 分別是圖像中的像素位置, W i W_i Wi? 是歸一化系數。

W i = ∑ j ∈ S G σ d ( i , j ) G σ r ( X i , X j ) X j W_i=\sum_{j\in{S}}G_{\sigma d}(i,j)G_{\sigma r}(X_i,X_j)X_{j} Wi?=jS?Gσd?(i,j)Gσr?(Xi?,Xj?)Xj?

其中, σ d \sigma d σd σ r \sigma r σr是高斯參數, G σ d G_{\sigma d} Gσd? G σ r G_{\sigma r} Gσr?分別表示空間函數和灰度相似度函數,空間函數用來減少遠距離像素影響;灰度相似度函數用來減少鄰域像素灰度值的影響,函數表示為

G σ d = e ? 1 2 ( d ( i , j ) σ d ) 2 G_{\sigma d}=e^{-\frac{1}{2}(\frac{d(i,j)}{\sigma d})^2} Gσd?=e?21?(σdd(i,j)?)2

G σ r = e ? 1 2 ( X i ? X j σ r ) 2 G_{\sigma r}=e^{-\frac{1}{2}(\frac{X_i-X_j}{\sigma r})^2} Gσr?=e?21?(σrXi??Xj??)2

其中, d ( i , j ) d(i,j) d(i,j)是i,j像素之間的歐氏距離

1.2 改進雙邊濾波

與雙邊濾波相似,都是基于高斯函數來計算像素的權重。不同之處在于,聯合雙邊濾波在計算權重時,不僅考慮了空間距離和像素值差異,還引入了濾波圖的信息。具體來說,聯合雙邊濾波的公式如下:

Y ( i ) = 1 W i ∑ j ∈ S G σ d ( i , j ) G σ r ( i ^ , j ^ ) X j Y(i) = \frac{1}{W_{i}}\sum_{j\in{S}}G_{\sigma d}(i,j)G_{\sigma r}(\hat i,\hat j)X_{j} Y(i)=Wi?1?jS?Gσd?(i,j)Gσr?(i^,j^?)Xj?

其中, X X X 是待處理的圖像, i , j i,j i,j 分別是圖像中的像素位置, X ^ \hat X X^是濾波圖, i , j i,j i,j 分別是濾波圖像中的像素位置, W i W_i Wi? 是歸一化系數。

W i = ∑ j ∈ S G σ d ( i , j ) G σ r ( i ^ , j ^ ) X j W_i=\sum_{j\in{S}}G_{\sigma d}(i,j)G_{\sigma r}(\hat i,\hat j)X_{j} Wi?=jS?Gσd?(i,j)Gσr?(i^,j^?)Xj?

其中, σ d \sigma d σd σ r \sigma r σr是高斯參數, G σ d G_{\sigma d} Gσd? G σ r G_{\sigma r} Gσr?分別表示空間函數和灰度相似度函數,表示為

G σ d = e ? 1 2 ( d ( i , j ) σ d ) 2 G_{\sigma d}=e^{-\frac{1}{2}(\frac{d(i,j)}{\sigma d})^2} Gσd?=e?21?(σdd(i,j)?)2

G σ r = e ? 1 2 ( X i ^ ? X j ^ σ r ) 2 G_{\sigma r}=e^{-\frac{1}{2}(\frac{\hat{X_i}-\hat{X_j}}{\sigma r})^2} Gσr?=e?21?(σrXi?^??Xj?^??)2

其中, d ( i , j ) d(i,j) d(i,j)是i,j像素之間的歐氏距離

與雙邊的區別在于,聯合濾波算法的引導圖是低頻圖像,論文中是用高斯濾波,也可以用引導濾波等算法結果。

二、仿真效果

用測試圖進行仿真,測試圖本身帶一些噪聲,對比雙邊濾波,改進雙邊濾波使用中檔位,邊緣保留較好,背景和物體內部噪聲抹得比較均勻。

原圖

雙邊濾波

改進雙邊濾波

三、參考文獻:

[1] 一種基于自適應雙邊濾波的圖像降噪算法


我的個人博客主頁,歡迎訪問

我的CSDN主頁,歡迎訪問

我的GitHub主頁,歡迎訪問

我的知乎主頁,歡迎訪問

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

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

相關文章

華為交換機堆疊與集群技術深度解析附帶腳本

一、引言 在企業園區網、數據中心等網絡場景中,為了提升網絡的可靠性、擴展性和管理效率,華為交換機提供了堆疊(Stack)和集群(CSS,Cluster Switch System )技術。這兩種技術能夠將多臺物理交換…

Python網絡爬蟲(十三)- 數據解析模塊 BeautifulSoup

1、BS4簡介 BeautifulSoup(簡稱 BS4) 是一個用于解析 HTML 和 XML 文檔的 Python 第三方庫。它能夠從網頁或其他 HTML/XML 格式的文本中提取數據,并將其轉換為結構化的對象,方便開發者快速定位、提取和操作所需信息。它的核心功能是通過解析器將無序的標記語言轉換為樹形結…

如何使用 Pytorch Lightning 啟用早停機制

【PL 基礎】如何啟用早停機制 摘要1. on_train_batch_start()2. EarlyStopping Callback 摘要 本文介紹了兩種在 PyTorch Lightning 中實現早停機制的方法。第一種是通過重寫on_train_batch_start()方法手動控制訓練流程;第二種是使用內置的EarlyStopping回調&#…

深入理解前綴和與差分算法及其C++實現

前綴和與差分是算法競賽和編程中非常重要的兩種技巧,它們能夠高效地處理區間查詢和區間更新問題。本文將詳細介紹這兩種算法的原理、應用場景以及C實現。 一、前綴和算法 1.1 前綴和的基本概念 前綴和(Prefix Sum)是一種預處理技術&#x…

HugeGraph【部署】Linux單機部署

注: hugegraph從版本 1.5.0 開始,需要 Java11 運行時環境 一、安裝JDK11 1.下載JDK11 https://www.oracle.com/java/technologies/downloads/#java11 2.解壓縮包 tar -zxvf jdk-11.0.27_linux-x64_bin.tar.gz 3.修改/etc/profile環境變量 export JAVA_HOME/usr…

C++異步編程里避免超時機制

C標準庫中時鐘(Clock) 這段內容主要介紹了C標準庫中**時鐘(Clock)**的概念和分類,以及它們在時間測量中的作用。以下是關鍵信息的解讀: 一、時鐘的核心特性 C中的時鐘是一個類,提供以下四個基…

npm install安裝不成功(node:32388)怎么解決?

如果在執行 npm install 時出現問題,尤其是 node:32388 相關的錯誤,這通常意味著某些依賴或配置出了問題。這里有一些常見的解決方法,你可以嘗試: 1. 清除 npm 緩存 有時候,npm 緩存問題會導致安裝失敗。你可以清除 …

Ubuntu-18.04-bionic 的apt的/etc/apt/sources.list 更換國內鏡像軟件源 筆記250702

Ubuntu-18.04-bionic 的apt的/etc/apt/sources.list更換國內鏡像軟件源 筆記250702 為 Ubuntu 18.04 LTS(代號 Bionic Beaver)更換 /etc/apt/sources.list 為國內鏡像源 備份/etc/apt/sources.list文件 sudo cp -a /etc/apt/sources.list /etc/apt/sou…

【運維系列】【ubuntu22.04】安裝GitLab

一.下載安裝文件 rootgitlab:~# wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/9/gitlab-ce-17.4.0-ce.0.el9.x86_64.rpm二.執行安裝腳本 2.1 先執行安裝前的命令 rootgitlab:~# apt install -y perl-interpreter rootgitlab:~# apt install -y openssh-s…

Cisco ASA防火墻查看ACL的條目數量

這里顯示的條目數量為ACE, ACE是啥? ACE全稱: access-list entry ACE指的是ACL條目展開后的數量, 啥叫展開? 示例: access-list out-in extend permit tcp80&443 host 1.1.1.1 host 2.2.2.2這種配置是占1條&#…

npm install安裝的node_modules是什么

node_modules 是一個由 npm(Node Package Manager)管理的文件夾,存放著你的 Node.js 項目中所有安裝的依賴包。當你運行 npm install 時,npm 會根據你的項目中 package.json 文件中的依賴配置,下載并安裝相應的包到 no…

【實時Linux實戰系列】實時Linux項目的部署與維護

在實時 Linux 項目的開發過程中,開發階段的工作僅僅是開始,生產環境中的部署與維護同樣至關重要。實時 Linux 系統廣泛應用于工業自動化、航空航天、智能交通等對實時性和穩定性要求極高的領域。例如,在工業自動化中,實時系統的部…

Go并發模式精要:掌握Goroutine與Channel的實戰藝術

在現代軟件開發中,有效利用并發能力已成為提升系統性能的關鍵。Go語言憑借其原生的Goroutine和Channel機制,為開發者提供了優雅的并發解決方案。本文將深入解析Go并發編程的核心模式與最佳實踐。 一、并發基石:Goroutine與Channel // 輕量級…

第29篇:Linux審計系統深度解析:基于OpenEuler 24.03的實踐指南

Linux審計系統深度解析:基于OpenEuler 24.03的實踐指南 文章目錄 Linux審計系統深度解析:基于OpenEuler 24.03的實踐指南一、Linux審計系統核心概念與組件架構1.1 審計系統核心組件詳解1. auditd守護進程:日志持久化引擎2. auditctl命令行工具…

Linux 啟動過程流程圖--ARM版

以下是ARM版本Linux啟動過程的超詳細樹狀圖,涵蓋硬件上電到應用程序交互的全流程,并包含關鍵函數調用鏈及源碼位置,適用于系統開發與調試場景: ARM Linux啟動全流程(含函數調用鏈) ARM Linux啟動流程&…

NVMe高速傳輸之擺脫XDMA設計6之系統架構設計

結合目前應用需求,以及前面基礎分析,確定IP應具有如下特色: (1) 通用性 前端數據采集系統基于 FPGA 開發。 一方面, 設備類型多, 使用的 FPGA型號各不相同, 需要實現的設計能夠在多種…

Mac homebrew 安裝教程

下載github安裝包 https://github.com/Homebrew/brew/releases/tag/4.5.8 下載安裝后 打開 安全里面允許安裝,就可以直接使用了

stm32hal模塊驅動(1)hpdl1414驅動

之前一直想用hpdl1414畫一塊手表,前面pcb測試板畫完沒空調試,最近剛好空出來時間,遂發下驅動。 這里簡單贅述hpdl1414的驅動原理:D0-D6負責數據輸入(ascii表后7位),A0,A1負責更改hpdl1414模塊顯…

從代碼學習深度強化學習 - TRPO PyTorch版

文章目錄 前言核心工具函數廣義優勢估計 (Generalized Advantage Estimation, GAE)案例一:TRPO 解決離散動作問題 (CartPole-v1)1. 環境初始化2. 網絡結構定義3. TRPO 智能體實現4. 訓練與可視化5. 訓練主程序與結果案例二:TRPO 解決連續動作問題 (Pendulum-v1)1. 環境與工具…

MySQL 升級到8.4版本的詳細指南

本指南詳細介紹了將 MySQL 升級到 8.4 版本的完整流程、注意事項和操作方法。 一、升級前準備 (3.1 Before You Begin) 在開始升級之前,必須仔細審閱本節信息并執行所有推薦的操作: 理解升級過程:了解升級期間可能發生的情況。請參閱第 3.4…