雙邊濾波(bilateral filter)是一種非線性的濾波方法,是結合影象的空間鄰近度和畫素值相似度的一種折衷處理,同時考慮空域資訊和灰度相似性,達到保邊去噪的目的。具有簡單、非迭代、區域性的特點。雙邊濾波器的好處是可以做邊緣儲存(edge preserving),一般過去用的維納濾波或者高斯濾波去降噪,都會較明顯地模糊邊緣,對於高頻細節的保護效果並不明顯[1]。
]中的雙
邊濾波效
果圖雙邊濾波器中輸出(i
,j) 位置的畫素值
g 依賴於鄰域內畫素值
f的加權組合(k,
l 表示鄰域畫素位置): g(
i,j)
=∑k,
lf(k
,l)w
(i,j
,k,l
)∑k,
lw(i
,j,k
,l)
權重係數w(
i,j,
k,l)
取決於定義域核
d 與值域核
r的乘積: d(
i,j,
k,l)
=exp
(−(i
−k)2
+(j−
l)22
σ2d)
, r(
i,j,
k,l)
=exp
(−||
f(i,
j)−f
(k,l
)||2
2σ2r
), w
(i,j
,k,l
)=ex
p(−(
i−k)
2+(j
−l)2
2σ2d
−||f
(i,j
)−f(
k,l)
||22
σ2r)
同時考慮了空間域與值域的差別。一般過去用的維納濾波或者高斯濾波去降噪,只考慮了空間域差別,都會較明顯地模糊邊緣,對於高頻細節的保護效果並不明顯;α-截尾均值濾波器,去掉百分率為α的最小值和最大之後剩下畫素的均值作為濾波器,只考慮了值域差別。
#include
"stdafx.h"
#include
"stdio.h"
#include
"cv.h"
#include
"highgui.h"
#include
"math.h"
#include
"time.h"
using namespace cv;
int main()
結果圖如下,**明顯變光滑了,主要的邊緣都保留了下來:
計算速度較慢,將近100ms。
[2]tomasi c, manduchi r. bilateral filtering for gray and color images[c]//computer vision, 1998. sixth international conference on. ieee, 1998: 839-846. 引用次數:5896
[3]雙邊濾波matlab實現-csdn部落格
雙邊濾波器的原理
雙邊濾波器是什麼?雙邊濾波 bilateral filter 是一種可以保邊去噪的濾波器。之所以可以達到此去噪效果,是因為濾波器是由兩個函式構成。乙個函式是由幾何空間距離決定濾波器係數。另乙個由畫素差值決定濾波器係數。可以與其相比較的兩個filter 高斯低通濾波器 和 截尾均值濾波器 去掉百分率為...
一維訊號雙邊濾波器 雙邊濾波器文獻總結(一)
因為最後的dde演算法中,最核心的就是濾波器模組,由於做之前是沒有好好攻讀相關硬體文獻,加上相關背景寫的不好導師一頓痛批,搞得現在要本末倒置,拿結果去找自己值得這麼做的理由。但其實從研究角度來說應該是一件好事的。小吐個槽 說起來之前也不算是沒好好讀文獻,實在是調研的時候方向偏差太大,紅外影象增強的v...
使用Matlab實現美顏功能(雙邊濾波器)
借用一張lena小姐的圖 題外話 lena小姐的全圖真的 可以看出美顏效果還是明顯的,下面進行過程實現 保留邊界細節,模糊變化不明顯的區域 我們知道高斯濾波器可以起到模糊影象的作用,而上述的過程是選擇性地進行模糊,在這裡是對影象的灰度變化進行乙個判斷,達到模糊該模糊的地方,並保留邊緣的細節 這裡可以...