非線性濾波:中值濾波 雙邊濾波

【OpenCV入門教程之九】 非線性濾波專場:中值濾波副渴、雙邊濾波

一铸磅、非線性濾波概述

線性濾波器:兩個信號之和的響應(yīng)和他們各自響應(yīng)之和相等。換句話說溅潜,每個像素的輸出值是一些輸入像素的加權(quán)和,線性濾波器易于構(gòu)造薪伏,并且易于從頻率響應(yīng)角度來進行分析滚澜。

其實在很多情況下,使用鄰域像素的非線性濾波也許會得到更好的效果嫁怀。比如在噪聲是散粒噪聲而不是高斯噪聲设捐,即圖像偶爾會出現(xiàn)很大的值的時候。在這種情況下塘淑,用高斯濾波器對圖像進行模糊的話萝招,噪聲像素是不會被去除的,它們只是轉(zhuǎn)換為更為柔和但仍然可見的散粒存捺。

二槐沼、中值濾波

中值濾波(Median filter)是一種典型的非線性濾波技術(shù),基本思想是用像素點鄰域灰度值的中值來代替該像素點的灰度值,該方法在去除脈沖噪聲岗钩、椒鹽噪聲的同時又能保留圖像邊緣細節(jié)逸爵。

2.1 中值濾波與均值濾波器比較

優(yōu)勢:在均值濾波器中,由于噪聲成分被放入平均計算中凹嘲,所以輸出受到了噪聲的影響师倔,但是在中值濾波器中,由于噪聲成分很難選上周蹭,所以幾乎不會影響到輸出趋艘。因此同樣用3x3區(qū)域進行處理,中值濾波消除的噪聲能力更勝一籌凶朗。**中值濾波無論是在消除噪聲還是保存邊緣方面都是一個不錯的方法瓷胧。 **

劣勢:中值濾波花費的時間是均值濾波的5倍以上。一個求平均值棚愤,一個排序搓萧。

中值濾波在一定條件下,可以克服線性濾波器(如均值濾波等)所帶來的圖像細節(jié)模糊宛畦,而且對濾除脈沖干擾即圖像掃描噪聲最為有效瘸洛。在實際運算過程中并不需要圖像的統(tǒng)計特性,也給計算帶來不少方便次和。但是對一些細節(jié)多反肋,特別是線、尖頂?shù)燃毠?jié)多的圖像不宜采用中值濾波踏施。

2.2 medianBlur 函數(shù)

void medianBlur( InputArray src, OutputArray dst, int ksize );
  • int ksize 必須為奇數(shù)

2.3 實例

核心代碼

medianBlur(src, dst, ksize);
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

// trackbar要求是整數(shù)
int ksize = 5;

Mat src;
Mat dst;

static void onKSizeChange(int, void *) {
    if (ksize % 2 == 0) ksize++; // 保證為奇數(shù)
    cout << ksize << endl;
    medianBlur(src, dst, ksize);
    imshow("中值濾波", dst);
}


int main() {

    src = imread("../pics/me.jpg");

    namedWindow("原圖");
    imshow("原圖", src);

    namedWindow("中值濾波");

    createTrackbar("ksize", "中值濾波", &ksize, 100, onKSizeChange);
    onKSizeChange(ksize, 0);

    waitKey(0);
}

ksize = 5

ksize = 5

ksize = 17

ksize = 17

ksize = 45

ksize = 45

ksize = 99

ksize = 99

三石蔗、雙邊濾波

3.1 概念

雙邊濾波(Bilateral filter)是一種非線性的濾波方法,是結(jié)合圖像的空間鄰近度和像素值相似度的一種折衷處理畅形,同時考慮空域信息和灰度相似性养距,達到保邊去噪的目的。具有簡單日熬、非迭代棍厌、局部的特點。

雙邊濾波器的好處是可以做邊緣保存(edge preserving)碍遍,一般過去用的維納濾波或者高斯濾波去降噪定铜,都會較明顯地模糊邊緣,對于高頻細節(jié)的保護效果并不明顯怕敬。

雙邊濾波器顧名思義比高斯濾波多了一個高斯方差揣炕,它是基于空間分布的高斯濾波函數(shù),所以在邊緣附近东跪,離的較遠的像素不會太多影響到邊緣上的像素值畸陡,這樣就保證了邊緣附近像素值的保存鹰溜。但是由于保存了過多的高頻信息,對于彩色圖像里的高頻噪聲丁恭,雙邊濾波器不能夠干凈的濾掉曹动,只能夠?qū)τ诘皖l信息進行較好的濾波。

在雙邊濾波器中牲览,輸出像素的值依賴于鄰域像素值的加權(quán)值組合:


  • i, j 表示行列
  • k, l 表示鄰域的大小
  • g(i, j) 表示輸出像素
  • f(k, l) 表示像素(i, j)附近的點墓陈,鄰域內(nèi)的點

而加權(quán)系數(shù)w(i,j,k,l)取決于 定義域核值域核 的乘積。

其中 定義域核 表示如下:

定義域濾波對應(yīng)圖示:

值域核 表示為:

值域濾波對應(yīng)圖示:

兩者相乘后第献,就會產(chǎn)生依賴于數(shù)據(jù)的雙邊濾波權(quán)重函數(shù):

3.2 bilateralFilter 函數(shù)

void bilateralFilter( InputArray src, OutputArray dst, int d,
                      double sigmaColor, double sigmaSpace,
                      int borderType = BORDER_DEFAULT );
  • int d表示在過濾過程中每個像素鄰域的直徑贡必。如果這個值我們設(shè)其為非正數(shù),那么OpenCV會從第五個參數(shù) sigmaSpace 來計算出它來庸毫。
  • double sigmaColor顏色空間濾波器的sigma值仔拟。數(shù)值越大,就表明該像素鄰域內(nèi)有更寬廣的顏色會被混合到一起飒赃,產(chǎn)生較大的半相等顏色區(qū)域利花。
  • double sigmaSpace坐標空間中濾波器的sigma值,坐標空間的標注方差载佳。數(shù)值越大炒事,意味著越遠的像素會相互影響,從而使更大的區(qū)域足夠相似的顏色獲取相同的顏色刚盈。當(dāng)d>0羡洛,d指定了鄰域大小且與sigmaSpace無關(guān)挂脑。否則藕漱,d正比于sigmaSpace。

3.3 實例

核心代碼

bilateralFilter(src, dst, d, sigmaColor, sigmaSpace);
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"

using namespace cv;

// trackbar要求是整數(shù)
int d = 25;
int sigmaColor = 50;
int sigmaSpace = 12;

Mat src;
Mat dst;

static void onNeighborhoodChange(int, void *) {
    bilateralFilter(src, dst, d, sigmaColor, sigmaSpace);
    imshow("雙邊濾波", dst);
}

static void onsigmaColorChange(int, void *) {
    bilateralFilter(src, dst, d, sigmaColor, sigmaSpace);
    imshow("雙邊濾波", dst);
}

static void onsigmaSpaceChange(int, void *) {
    bilateralFilter(src, dst, d, sigmaColor, sigmaSpace);
    imshow("雙邊濾波", dst);
}


int main() {

    src = imread("../pics/me.jpg");

    namedWindow("原圖");
    imshow("原圖", src);

    namedWindow("雙邊濾波");

    createTrackbar("鄰域直徑", "雙邊濾波", &d, 100, onNeighborhoodChange);
    onNeighborhoodChange(d, 0);

    createTrackbar("sigmaColor", "雙邊濾波", &sigmaColor, 100, onsigmaColorChange);
    onsigmaColorChange(sigmaColor, 0);

    createTrackbar("sigmaSpace", "雙邊濾波", &sigmaSpace, 100, onsigmaSpaceChange);
    onsigmaSpaceChange(sigmaSpace, 0);

    waitKey(0);
}

通過調(diào)整3個參數(shù)崭闲,發(fā)現(xiàn) dsigmaColor 對圖像影響最大肋联。

  • d 越大圖像整個越模糊,臉上的黑點會漸漸消失刁俭,就像去掉椒噪聲
  • sigmaColor 越大圖像更廣的顏色混合在一起橄仍,圖像看起來更柔和,像蒙上了一層薄紗牍戚,沒有尖銳的顏色變化侮繁。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市如孝,隨后出現(xiàn)的幾起案子宪哩,更是在濱河造成了極大的恐慌,老刑警劉巖第晰,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锁孟,死亡現(xiàn)場離奇詭異彬祖,居然都是意外死亡,警方通過查閱死者的電腦和手機品抽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門储笑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人圆恤,你說我怎么就攤上這事突倍。” “怎么了盆昙?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵赘方,是天一觀的道長。 經(jīng)常有香客問我弱左,道長窄陡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任拆火,我火速辦了婚禮跳夭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘们镜。我一直安慰自己币叹,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布模狭。 她就那樣靜靜地躺著颈抚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嚼鹉。 梳的紋絲不亂的頭發(fā)上贩汉,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音锚赤,去河邊找鬼匹舞。 笑死,一個胖子當(dāng)著我的面吹牛线脚,可吹牛的內(nèi)容都是我干的赐稽。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼浑侥,長吁一口氣:“原來是場噩夢啊……” “哼姊舵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寓落,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤括丁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后零如,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躏将,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡锄弱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了祸憋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片会宪。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蚯窥,靈堂內(nèi)的尸體忽然破棺而出掸鹅,到底是詐尸還是另有隱情,我是刑警寧澤拦赠,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布巍沙,位于F島的核電站,受9級特大地震影響荷鼠,放射性物質(zhì)發(fā)生泄漏句携。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一允乐、第九天 我趴在偏房一處隱蔽的房頂上張望矮嫉。 院中可真熱鬧,春花似錦牍疏、人聲如沸蠢笋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昨寞。三九已至,卻和暖如春厦滤,著一層夾襖步出監(jiān)牢的瞬間援岩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工馁害, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窄俏,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓碘菜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親限寞。 傳聞我的和親對象是個殘疾皇子忍啸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 不同圖像灰度不同,邊界處一般會有明顯的邊緣履植,利用此特征可以分割圖像计雌。需要說明的是:邊緣和物體間的邊界并不等同,邊緣...
    大川無敵閱讀 13,823評論 0 29
  • http://blog.csdn.net/x454045816/article/details/52153250 ...
    G風(fēng)閱讀 7,024評論 0 1
  • 【OpenCV入門教程之八】線性鄰域濾波專場:方框濾波玫霎、均值濾波與高斯濾波 目錄 平滑(模糊)處理 圖像濾波與濾波...
    謝小帥閱讀 1,605評論 0 0
  • 參考資料: 圖像卷積與濾波的一些知識點 圖像處理基本概念——卷積凿滤,濾波妈橄,平滑 1.卷積的基本概念 首先,我們有一個...
    keloli閱讀 9,981評論 0 26
  • 圖像濾波翁脆,即在盡量保留圖像細節(jié)特征的條件下對目標圖像的噪聲進行抑制眷蚓,是圖像預(yù)處理中不可缺少的操作,其處理效果的好壞...
    木夜溯閱讀 3,059評論 0 10