雙邊濾波器(bilateral filter)是一種可以保邊去噪的濾波器。可以濾除影象資料中的雜訊,且還會保留住影象的邊緣、紋理等(因雜訊是高頻訊號,邊緣、紋理也是高頻資訊,高斯濾波會在濾除雜訊的同時使得邊緣模糊)。那這麼優秀的乙個濾波器,他到底是個什麼呢,其實,它和我們普通的高斯濾波器一樣,也是使用乙個卷積核(模板矩陣),疊加到待處理畫素點上,使用對應鄰域畫素點的加權求和來作為新的輸出畫素點的值一種方法,簡單來說,雙邊濾波和高斯濾波一樣,不同只在於模板矩陣的不同。
雙邊濾波器的模板係數矩陣由高斯模板矩陣點乘(元素級相乘)值域係數獲得。可以與其相比較的兩個濾波器是:高斯低通濾波器
和α-截尾均值濾波器(去掉百分率為α的最小值和最大之後剩下畫素的均值作為濾波器)。
雙邊濾波器中,輸出畫素的值依賴於鄰域畫素的值的加權組合,
權重係數w(i,j,k,l)取決於定義域核
和值域核
的乘積
同時考慮了空間域與值域的差別,而gaussian filter和α均值濾波分別只考慮了空間域和值域差別。
原理:在平坦區域,畫素差值較小,對應值域權重r接近於1,此時空域權重d起主要作用,相當於直接對此區域進行高斯模糊,在邊緣區域,畫素差值較大,值域係數下降,導致此處核函式下降(因w=r*d),當前畫素受到的影響就越小,從而保持了邊緣的細節資訊。
思想:抑制與中心畫素值差異較大的畫素(即使你們空域相距較近)。
計算方法:對每乙個鄰域畫素點,計算出其對應的空域係數和值域係數,相乘得到總的係數,然後進行加權求和。
opencv
雙邊濾波函式:
cv_exports_w
void
bilateralfilter(
inputarray
src,
outputarray
dst,
intd
,double
sigmacolor
,double
sigmaspace,
intbordertype
=border_default);
值域和空域的兩個方差sigma可以簡單的設定為相等,小於10,無太大效果,大於150效果太強,像**片似的。
sigma_color
較大,則在鄰域中的畫素值相差較大的畫素點也會用來平均。
sigma_space
較大,則雖然離得較遠,但是,只要值相近,就會互相影響。
將sigma_sapce設定較大,sigma_color設定較小,可獲得較好的效果(椒鹽雜訊)。
雙邊濾波的內在想法是:在影象的值域(range)上做傳統濾波器在空域(domain)上做的工作。空域濾波對空間上鄰近的點進行加權平均,加權係數隨著距離的增加而減少;值域濾波則是對畫素值相近的點進行加權平均,加權係數隨著值差的增大而減少。
雙邊濾波(Bilateral filter)
強大的雙邊濾波器可平滑平坦區域,同時保持邊緣銳化。因此,它可作為乙個自動的 化或圖畫濾波器,其缺點是效率低 即該濾波器執行的時間要按秒,甚至分鐘而不是毫秒來計算 那麼如何 化一副影象時,還可接受其執行時間。最重要的技巧就是在低解析度下使用雙邊濾波,這會得到與高解析度下相似的效果,但執行速度更快。可將...
雙邊濾波bilateralFilter
雙邊濾波是一種非線性的濾波方法,是結合影象的空間鄰近度和畫素值相似度的一種折衷處理,同時考慮空間與資訊和灰度相似性,達到保邊去噪的目的,具有簡單 非迭代 區域性處理的特點。之所以能夠達到保邊去噪的濾波效果是因為濾波器由兩個函式構成 乙個函式是由幾何空間距離決定濾波器係數,另乙個是由畫素差值決定濾波器...
雙邊保留濾波
雙邊濾波的操作主要是ccv2.bilateralfilter 函式來操作,它能夠保持邊界清晰的情況下有效的去除雜訊,但是這種操作比較慢。它擁有著美顏的效果 import cv2 as cv import numpy as np 雙邊保留濾波 def bilateralfilter image src...