99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

雙邊濾波原理_HLS實(shí)現(xiàn)Bilateral Filtering雙邊濾波器

Hx ? 作者:工程師陳翠 ? 2018-06-29 08:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

雙邊濾波(Bilateral filter)是一種可以保邊去噪的濾波器。之所以可以達(dá)到此去噪效果,是因?yàn)闉V波器是由兩個(gè)函數(shù)構(gòu)成。一個(gè)函數(shù)是由幾何空間距離決定濾波器系數(shù)。另一個(gè)由像素差值決定濾波器系數(shù)。

雙邊濾波器中,輸出像素的值依賴于鄰域像素的值的加權(quán)組合,權(quán)重系數(shù)w(i,j,k,l)取決于定義域核和值域核的乘積,同時(shí)考慮了空間域與值域的差別,而Gaussian Filter和α均值濾波分別只考慮了空間域和值域差別。

雙邊濾波原理(Bilateral Filtering)

基本思路

雙邊濾波(bilateral filtering)的基本思路是同時(shí)考慮將要被濾波的像素點(diǎn)的空域信息(domain)和值域信息(range)。因此是一種 combined 濾波方式,因此叫做 bilateral ,即同時(shí)考慮兩方面的信息。首先,對(duì)于圖像濾波來說,一個(gè)通常的intuition是:(自然)圖像在空間中變化緩慢,因此相鄰的像素點(diǎn)會(huì)更相近。但是這個(gè)假設(shè)在圖像的邊緣處變得不成立。如果在邊緣處也用這種思路來進(jìn)行濾波的話,即認(rèn)為相鄰相近,則得到的結(jié)果必然會(huì)模糊掉邊緣,這是不吼的,因此考慮再利用像素點(diǎn)的值的大小進(jìn)行補(bǔ)充,因?yàn)檫吘墐蓚?cè)的點(diǎn)的像素值差別很大,因此會(huì)使得其加權(quán)的時(shí)候權(quán)重具有很大的差別,從而使得只考慮自己所屬的一邊的鄰域??梢岳斫獬上雀鶕?jù)像素值對(duì)要用來進(jìn)行濾波的鄰域做一個(gè)分割或分類,再給該點(diǎn)所屬的類別相對(duì)較高的權(quán)重,然后進(jìn)行鄰域加權(quán)求和,得到最終結(jié)果。

實(shí)現(xiàn)原理

在 bilateral filtering 中,兩個(gè)要素即:closeness 和 similarity ,或者說 domain 和 range ,或者 geometric 和 photometric ,其數(shù)學(xué)表達(dá)方式相近,如下:

其中積分號(hào)前面為歸一化因子,這里考慮對(duì)所有的像素點(diǎn)進(jìn)行加權(quán),c 和 s 是 closeness 和 similarity 函數(shù),x 代表要求的點(diǎn),f (x) 代表該點(diǎn)的像素值。f(x) –》 h(x) 為濾波前后的image。我們最后的濾波函數(shù)為

由于domain component,使得濾波特性較好,由于range component,使得crisp edge 可以保持。

下圖示意了有邊緣的時(shí)候的權(quán)重和最后的濾波結(jié)果,可以看出權(quán)重在邊界有很明顯的分界,從而幾乎只對(duì)自己所屬的邊緣一側(cè)的像素點(diǎn)進(jìn)行加權(quán)。

實(shí)現(xiàn) c 和 s 兩個(gè)函數(shù)的一種方法即 Gaussian 核,決定其性質(zhì)的為各自的sigma參數(shù),即 σdσd 和 σrσr 。

template

unsigned char bilateralProc(

hls::Window &win,

WEIGHT_VALUE weights[WIN_SZ*WIN_SZ][256],

WEIGHT_MAP map[(WIN_SZ》》1)*(WIN_SZ》》1)+1])

{

#pragma HLS INLINE

ap_ufixed《16,1》 color_weights;

ap_ufixed《32,16》 weight_sum=0;

ap_ufixed《32,16》 px_sum=0;

for (int i=0;i》1;

ap_uint《8》 sub_sq = sub*sub;

ap_int《8》 ei = i-sub;

ap_int《8》 ej = j-sub;

ap_uint《8》 comp = ei*ei;

comp += ej*ej;

if(comp》sub_sq)

{

continue;

}

else

{

ap_int《9》 diffpx = win(i, j) - win(WIN_SZ》》1,WIN_SZ》》1);

if(diffpx 《 0)

{

diffpx = -diffpx;

}

if(comp == 0)

color_weights = 1;

else

color_weights = (ap_ufixed《16,1》)weights[map[comp]][diffpx];

px_sum += (color_weights)*(ap_uint《16》)(win(i,j));

weight_sum += color_weights;

}

}

})(px_sum/weight_sum) + (ap_ufixed《32,16》)(0.5);

return value;

}

template

void _filter(

hls::Mat &src,

hls::Mat &dst,

WEIGHT_VALUE weights[WIN_SZ*WIN_SZ][256],

WEIGHT_MAP map[(WIN_SZ》》1)*(WIN_SZ》》1)+1])

{

HLS_SIZE_T IMG_HEIGHT = src.rows;

HLS_SIZE_T IMG_WIDTH = src.cols;

hls::filter2d_kernel fk_opr;

hls::Window src_kernel_win;

hls::LineBuffer main_buf;

hls::LineBuffer col_buf;

HLS_SIZE_T fillvalue=255;

HLS_SIZE_T loophight=IMG_HEIGHT+WIN_SZ-1;

HLS_SIZE_T loopwidth=IMG_WIDTH+WIN_SZ-1;

HLS_SIZE_T buf_row=0;

HLS_SIZE_T buf_rows,buf_cols;

HLS_SIZE_T heightloop= IMG_HEIGHT+WIN_SZ-1;

HLS_SIZE_T widthloop = IMG_WIDTH+WIN_SZ-1;//one pixel overlap, so it should minus one

loop_height: for(HLS_SIZE_T i= 0;i《 heightloop;i++) {

#pragma HLS LOOP_TRIPCOUNT MAX=ROWS

loop_width: for (HLS_SIZE_T j= 0;j《 widthloop;j++) {

#pragma HLS DEPENDENCE array inter false

#pragma HLS LOOP_TRIPCOUNT MAX=COLS

#pragma HLS LOOP_FLATTEN OFF

#pragma HLS PIPELINE II=1

if(j

》 temp;

else

temp=fillvalue;

main_buf(0,j)=(temp&0xFF);

}

for(buf_row=0; buf_row=1; buf_row--){

HLS_TNAME(HLS_8UC1) temp=col_buf(buf_row-1,0);

src_kernel_win(buf_row-1,0)=temp;

main_buf(buf_row,j)=temp;

}

}

else

{

for(HLS_SIZE_T row=0; row=1; col--)

{

src_kernel_win(row,col) = src_kernel_win(row,col-1);

}

}

for(HLS_SIZE_T row=0; row= (WIN_SZ-1) && j》=(WIN_SZ-1))

{

ap_uint《8》 temp_out = bilateralProc(src_kernel_win, weights, map);

dst.data_stream[0] 《《 temp_out;

}

}//w

}//h

}

void hls_BilateralFilter( AXI_STREAM &INPUT_STREAM, AXI_STREAM &OUTPUT_STREAM,int rows, int cols,

WEIGHT_VALUE weights[MAX_WIN_SZ*MAX_WIN_SZ][256],

WEIGHT_MAP map[(MAX_WIN_SZ》》1)*(MAX_WIN_SZ》》1)+1])

{

#pragma HLS INTERFACE axis port=INPUT_STREAM

#pragma HLS INTERFACE axis port=OUTPUT_STREAM

#pragma HLS INTERFACE s_axilite port=rows bundle=BUS_CTRL

#pragma HLS INTERFACE s_axilite port=cols bundle=BUS_CTRL

#pragma HLS INTERFACE s_axilite port=weights bundle=BUS_CTRL

#pragma HLS INTERFACE s_axilite port=map bundle=BUS_CTRL

#pragma HLS INTERFACE s_axilite port=return bundle=BUS_CTRL

hls::Mat src(rows,cols);

hls::Mat dst(rows,cols);

hls::Mat src0(rows,cols);

hls::Mat src1(rows,cols);

hls::Mat gray0(rows,cols);

hls::Mat gray1(rows,cols);

#pragma HLS dataflow

hls::AXIvideo2Mat(INPUT_STREAM, src);

hls::Duplicate(src,src0,src1);

hls::CvtColor(src0,gray0);

_filter(gray0, gray1, weights, map);

hls::CvtColor(gray1,dst);

hls::Mat2AXIvideo(dst, OUTPUT_STREAM);

}

C仿真效果:

原圖

雙邊濾波器

對(duì)比一下高斯模糊濾波器

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 雙邊濾波
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    2122
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    數(shù)字濾波器的設(shè)計(jì)和實(shí)現(xiàn)

    濾波器設(shè)計(jì)是一個(gè)創(chuàng)建滿足指定濾波要求的濾波器參數(shù)的過程。濾波器實(shí)現(xiàn)包括濾波器結(jié)構(gòu)選擇和
    的頭像 發(fā)表于 10-31 10:38 ?2030次閱讀
    數(shù)字<b class='flag-5'>濾波器</b>的設(shè)計(jì)和<b class='flag-5'>實(shí)現(xiàn)</b>

    基于Matlab與FPGA的雙邊濾波算法實(shí)現(xiàn)

    前面發(fā)過中值、均值、高斯濾波的文章,這些只考慮了位置,并沒有考慮相似度。那么雙邊濾波來了,既考慮了位置,有考慮了相似度,對(duì)邊緣的保持比前幾個(gè)好很多,當(dāng)然實(shí)現(xiàn)上也是復(fù)雜很多。本文將從原理
    的頭像 發(fā)表于 07-10 11:28 ?621次閱讀
    基于Matlab與FPGA的<b class='flag-5'>雙邊</b><b class='flag-5'>濾波</b>算法<b class='flag-5'>實(shí)現(xiàn)</b>

    想用FPGA實(shí)現(xiàn)雙邊濾波算法,有懂得能說一下具體的實(shí)現(xiàn)步驟嗎

    想用FPGA實(shí)現(xiàn)雙邊濾波算法,有懂得能說一下具體的實(shí)現(xiàn)步驟嗎
    發(fā)表于 03-21 15:41

    一種快速Bilateral濾波器的設(shè)計(jì)與實(shí)現(xiàn)

    本文提出了一種Bilateral濾波器的快速算法。在算法的設(shè)計(jì)上,首先對(duì)空間鄰近度函數(shù)建立一組動(dòng)態(tài)掩模,代替原始耗時(shí)的逐點(diǎn)運(yùn)算,時(shí)間降至原有時(shí)間的三分之二;再離散化亮度相似
    發(fā)表于 09-12 16:03 ?4次下載

    一種改進(jìn)的增維型雙邊濾波的快速算法

    一種改進(jìn)的增維型雙邊濾波的快速算法_李俊峰
    發(fā)表于 01-07 16:00 ?0次下載

    采用密度k_means和改進(jìn)雙邊濾波的點(diǎn)云自適應(yīng)去噪算法_郭進(jìn)

    采用密度k_means和改進(jìn)雙邊濾波的點(diǎn)云自適應(yīng)去噪算法_郭進(jìn)
    發(fā)表于 03-19 18:58 ?1次下載

    詳細(xì)解析濾波器的定義,濾波器的特性,濾波器的工作原理,濾波器的分類,濾波器的典型電路原理圖

    濾波器的基礎(chǔ)是諧振電路,只要能構(gòu)成諧振電路組合就可實(shí)現(xiàn)濾波器。濾波器有4種基本原型,即低通濾波器、帶通
    發(fā)表于 05-03 16:20 ?1.9w次閱讀
    詳細(xì)解析<b class='flag-5'>濾波器</b>的定義,<b class='flag-5'>濾波器</b>的特性,<b class='flag-5'>濾波器</b>的工作原理,<b class='flag-5'>濾波器</b>的分類,<b class='flag-5'>濾波器</b>的典型電路原理圖

    雙邊濾波點(diǎn)云去噪算法

    對(duì)三維點(diǎn)云數(shù)據(jù)進(jìn)行曲率估計(jì),并對(duì)現(xiàn)有點(diǎn)云雙邊濾波進(jìn)行改進(jìn),增強(qiáng)其魯棒性和保特征性;最后使用改進(jìn)的雙邊濾波對(duì)小尺度噪聲進(jìn)行光順,實(shí)現(xiàn)三維點(diǎn)云數(shù)
    發(fā)表于 01-05 10:51 ?2次下載
    <b class='flag-5'>雙邊</b><b class='flag-5'>濾波</b>點(diǎn)云去噪算法

    圖像處理基礎(chǔ)(5):雙邊濾波器

    空域信息和灰度相似性,達(dá)到保邊去噪的目的。 雙邊濾波器之所以能夠做到在平滑去噪的同時(shí)還能夠很好的保存邊緣(Edge Preserve),是由于其濾波器的核由兩個(gè)函數(shù)生成: ? 一個(gè)函數(shù)由像素歐式距離決定
    發(fā)表于 09-06 20:39 ?927次閱讀

    如何進(jìn)行雙邊濾波的圖像處理算法研究

    濾波是圖像處理和計(jì)算機(jī)視覺中最基本的操作,高斯低通濾波是最常用的,其原理是鄰域內(nèi)像素值的加權(quán)平均。這種鄰域內(nèi)的平均會(huì)使一些邊界被平均掉而使圖像出現(xiàn)模糊,雙邊濾波正是為了解決邊緣模糊的問
    發(fā)表于 12-21 09:53 ?56次下載
    如何進(jìn)行<b class='flag-5'>雙邊</b><b class='flag-5'>濾波</b>的圖像處理算法研究

    雙邊帶調(diào)制原理_雙邊帶調(diào)制的優(yōu)缺點(diǎn)

    如果輸入的基帶信號(hào)沒有直流分量,且是理想帶通濾波,則得到的輸出信號(hào)便是無載波分量的雙邊帶信號(hào),或稱雙邊帶抑制載波(DSB-SC)信號(hào),簡(jiǎn)稱DSB信號(hào)。
    的頭像 發(fā)表于 03-11 09:06 ?2.4w次閱讀
    <b class='flag-5'>雙邊</b>帶調(diào)制原理_<b class='flag-5'>雙邊</b>帶調(diào)制的優(yōu)缺點(diǎn)

    LabVIEW:適合點(diǎn)云平滑的雙邊濾波器

    的尖銳特征信息至關(guān)重要。本文設(shè)計(jì)了一種適合點(diǎn)云平滑的雙邊濾波器,既可以高效的去除噪音,又可以保留物體尖銳特性。 背景介紹: 對(duì)三維采集設(shè)備獲取的點(diǎn)云進(jìn)行去噪平滑處理是當(dāng)今幾何處理研究中最重要的任務(wù)之一。實(shí)際上獲
    的頭像 發(fā)表于 11-05 18:16 ?3892次閱讀
    LabVIEW:適合點(diǎn)云平滑的<b class='flag-5'>雙邊</b><b class='flag-5'>濾波器</b>

    空間濾波器matlab實(shí)現(xiàn)

    空間濾波器的調(diào)整取決于濾波器的類型,比如均值濾波器可以調(diào)整濾波器的大小,中值濾波器可以調(diào)整濾波器
    發(fā)表于 02-16 09:40 ?1105次閱讀
    空間<b class='flag-5'>濾波器</b>matlab<b class='flag-5'>實(shí)現(xiàn)</b>

    如何使用HLS加速FPGA上的FIR濾波器

    電子發(fā)燒友網(wǎng)站提供《如何使用HLS加速FPGA上的FIR濾波器.zip》資料免費(fèi)下載
    發(fā)表于 06-14 15:28 ?3次下載
    如何使用<b class='flag-5'>HLS</b>加速FPGA上的FIR<b class='flag-5'>濾波器</b>

    高斯濾波雙邊濾波的區(qū)別

    高斯濾波雙邊濾波在圖像處理中都是常用的平滑濾波技術(shù),但它們之間存在一些顯著的區(qū)別。以下是兩者之間的主要區(qū)別: 一、基本原理 高斯濾波
    的頭像 發(fā)表于 09-29 09:37 ?1187次閱讀