溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么

發(fā)布時(shí)間:2021-03-03 15:42:03 來源:億速云 閱讀:678 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

1. 雙邊濾波(Bilateral filter)的原理

雙邊濾波器之所以能夠做到在平滑去噪的同時(shí)還能夠很好的保存邊緣(Edge Preserve),是由于其濾波器的核由兩個(gè)函數(shù)生成:空間域核和值域核

(1)空間域核:由像素位置歐式距離決定的模板權(quán)值bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么

bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么

bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么為模板窗口的其他系數(shù)的坐標(biāo);其中bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么

為模板窗口的中心坐標(biāo)點(diǎn);bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么

為高斯函數(shù)的標(biāo)準(zhǔn)差。 使用該公式生成的濾波器模板和高斯濾波器使用的模板是沒有區(qū)別的。

在一些博客和教程里,這個(gè)權(quán)值bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么稱為定義域核,也稱為空間系數(shù),或空間域(spatial domain S)。顯示由bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么的計(jì)算公式可知,它是計(jì)算臨近點(diǎn)bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么到中心點(diǎn)bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么臨近程度,因此定義域核bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么是用于衡量空間臨近的程度。

(2)值域核:由像素值的差值決定的模板權(quán)值bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么

bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么

其中,bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么為模板窗口的其他系數(shù)的坐標(biāo),bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么表示圖像在點(diǎn)bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么處的像素值;bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么為模板窗口的中心坐標(biāo)點(diǎn),對(duì)應(yīng)的像素值為bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么;bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么為高斯函數(shù)的標(biāo)準(zhǔn)差。

一般將權(quán)值bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么稱為值域核,像素值域(range domain R),不管是值域核bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么還是空間域核bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么,其大小都在[0 1]之間

(3)將上述兩個(gè)模板相乘就得到了雙邊濾波器的模板權(quán)值:

bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么

因此,雙邊濾波器的數(shù)據(jù)公式可以表示如下:

bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么

2. 雙邊濾波(Bilateral filter)理解

雙邊濾波(Bilateral filter)其綜合了高斯濾波器(Gaussian Filter)和α-截尾均值濾波器(Alpha-Trimmed mean Filter)的特點(diǎn),同時(shí)考慮了空間域與值域的差別,而Gaussian Filter和α均值濾波分別只考慮了空間域和值域差別。高斯濾波器只考慮像素間的歐式距離,其使用的模板系數(shù)隨著和窗口中心的距離增大而減??;α-截尾均值濾波器則只考慮了像素灰度值之間的差值,去掉α%的最小值和最大值后再計(jì)算均值。

2.1 空域權(quán)重bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么和值域權(quán)重bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么的意義:

空域權(quán)重bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么衡量的是 bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么兩點(diǎn)之間的距離,距離越遠(yuǎn)權(quán)重越低;

值域權(quán)重bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么衡量的是bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么兩點(diǎn)之間的像素值相似程度,越相似權(quán)重越大

這里從圖像的平坦區(qū)域邊緣區(qū)域定性分析雙邊濾波的降噪效果

  • 在平坦區(qū)域,臨近像素的像素值的差值較小,對(duì)應(yīng)值域權(quán)重bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么接近于1,此時(shí)空域權(quán)重bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么起主要作用,相當(dāng)于直接對(duì)此區(qū)域進(jìn)行高斯模糊。因此,平坦區(qū)域相當(dāng)于進(jìn)行高斯模糊。

  • 在邊緣區(qū)域,臨近像素的像素值的差值較大,對(duì)應(yīng)值域權(quán)重bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么接近于0,導(dǎo)致此處核函數(shù)下降(因bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么),當(dāng)前像素受到的影響就越小,從而保持了原始圖像的邊緣的細(xì)節(jié)信息。

3. Opencv雙邊濾波函數(shù):

opencv中提供了bilateralFilter()函數(shù)來實(shí)現(xiàn)雙邊濾波操作,其原型如下:

void cv::bilateralFilter(InputArray src,
OutputArray 	dst,
int 	d,
double 	sigmaColor,
double 	sigmaSpace,
int 	borderType = BORDER_DEFAULT 
)		

InputArray src: 輸入圖像,可以是Mat類型,圖像必須是8位或浮點(diǎn)型單通道、三通道的圖像。

  • OutputArray dst: 輸出圖像,和原圖像有相同的尺寸和類型。

  • int d: 表示在過濾過程中每個(gè)像素鄰域的直徑范圍。如果這個(gè)值是非正數(shù),則函數(shù)會(huì)從第五個(gè)參數(shù)sigmaSpace計(jì)算該值。

  • double sigmaColor: 顏色空間過濾器的sigma值,這個(gè)參數(shù)的值月大,表明該像素鄰域內(nèi)有越寬廣的顏色會(huì)被混合到一起,產(chǎn)生較大的半相等顏色區(qū)域。 (這個(gè)參數(shù)可以理解為值域核bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么

  • double sigmaSpace: 坐標(biāo)空間中濾波器的sigma值,如果該值較大,則意味著越遠(yuǎn)的像素將相互影響,從而使更大的區(qū)域中足夠相似的顏色獲取相同的顏色。當(dāng)d>0時(shí),d指定了鄰域大小且與sigmaSpace無關(guān),否則d正比于sigmaSpace. (這個(gè)參數(shù)可以理解為空間域核bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么

  • int borderType=BORDER_DEFAULT: 用于推斷圖像外部像素的某種邊界模式,有默認(rèn)值BORDER_DEFAULT.

雙邊濾波器可以很好的保存圖像邊緣細(xì)節(jié)而濾除掉低頻分量的噪音,但是雙邊濾波器的效率不是太高,花費(fèi)的時(shí)間相較于其他濾波器而言也比較長(zhǎng)。
對(duì)于簡(jiǎn)單的濾波而言,可以將兩個(gè)sigma值設(shè)置成相同的值,如果值<10,則對(duì)濾波器影響很小,如果值>150則會(huì)對(duì)濾波器產(chǎn)生較大的影響,會(huì)使圖片看起來像卡通。

示例代碼:

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
 
using namespace std;
using namespace cv;
 
//定義全局變量
const int g_ndMaxValue = 100;
const int g_nsigmaColorMaxValue = 200;
const int g_nsigmaSpaceMaxValue = 200;
int g_ndValue;
int g_nsigmaColorValue;
int g_nsigmaSpaceValue;
 
Mat g_srcImage;
Mat g_dstImage;
 
//定義回調(diào)函數(shù)
void on_bilateralFilterTrackbar(int, void*);
 
int main()
{
 g_srcImage = imread("lena.jpg");
 
 //判斷圖像是否加載成功
 if(g_srcImage.empty())
 {
 cout << "圖像加載失敗!" << endl;
 return -1;
 }
 else
 cout << "圖像加載成功!" << endl << endl;
 
 namedWindow("原圖像", WINDOW_AUTOSIZE);
 imshow("原圖像", g_srcImage);
 
 //定義輸出圖像窗口屬性和軌跡條屬性
 namedWindow("雙邊濾波圖像", WINDOW_AUTOSIZE);
 g_ndValue = 10;
 g_nsigmaColorValue = 10;
 g_nsigmaSpaceValue = 10;
 
 char dName[20];
 sprintf(dName, "鄰域直徑 %d", g_ndMaxValue);
 
 char sigmaColorName[20];
 sprintf(sigmaColorName, "sigmaColor %d", g_nsigmaColorMaxValue);
 
 char sigmaSpaceName[20];
 sprintf(sigmaSpaceName, "sigmaSpace %d", g_nsigmaSpaceMaxValue);
 
 //創(chuàng)建軌跡條
 createTrackbar(dName, "雙邊濾波圖像", &g_ndValue, g_ndMaxValue, on_bilateralFilterTrackbar);
 on_bilateralFilterTrackbar(g_ndValue, 0);
 
 createTrackbar(sigmaColorName, "雙邊濾波圖像", &g_nsigmaColorValue,
   g_nsigmaColorMaxValue, on_bilateralFilterTrackbar);
 on_bilateralFilterTrackbar(g_nsigmaColorValue, 0);
 
 createTrackbar(sigmaSpaceName, "雙邊濾波圖像", &g_nsigmaSpaceValue,
   g_nsigmaSpaceMaxValue, on_bilateralFilterTrackbar);
 on_bilateralFilterTrackbar(g_nsigmaSpaceValue, 0);
 
 waitKey(0);
 
 return 0;
}
 
void on_bilateralFilterTrackbar(int, void*)
{
 bilateralFilter(g_srcImage, g_dstImage, g_ndValue, g_nsigmaColorValue, g_nsigmaSpaceValue);
 imshow("雙邊濾波圖像", g_dstImage);
}

上述內(nèi)容就是bilateral filter雙邊濾波器的實(shí)現(xiàn)原理是什么,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI