c 實現中值濾波

2021-08-30 11:25:36 字數 720 閱讀 9823

中值濾波是一種非線性平滑技術。

中值濾波的原理通俗的講就是排序,取中間值代替當前值。

對椒鹽雜訊有明顯效果。

知道原理,實現起來就不難了,**如下

#include "stdio.h"

//濾波長度

#define n_filter 20

//中值濾波

unsigned char medfilter(int * databuffer)

}} // 計算中值

if ((n_filter & 1) > 0)

else

//printf("%d", temp);

return temp;

}//**

void main()

; unsigned char ret;

//存放資料buf

int buf[n_filter] = ;

int i, j;

//將最新資料放到buf最後一位,其他資料前移一位

for ( i = 0; i<20; i++)

buf[j] = temp_buf[i];

//更新的資料進行中值濾波

ret = medfilter(buf);

printf("%d\n", ret);

} //printf("%d", ret);

getchar();

}

中值濾波C 實現

中值濾波器是一種非線性濾波器,常用於消除影象中的椒鹽雜訊。與低通濾波不同的是,中值濾波有利於保留邊緣的尖銳度,但它會洗去均勻介質區域中的紋理。因為椒鹽雜訊是由灰度值為0或者255產生的點,所以去畫素周圍畫素值得中值得話很容易剔除校驗雜訊。include include include using n...

C 結合GDAL實現中值濾波

private void btnmiddlefilter click object sender,eventargs e gdal.allregister 更改讀寫許可權 dataset srcds gdal.open openfilename,access.ga update datatype s...

中值濾波 MATLAB實現

1 原理 中值濾波能有效抑制雜訊。主要採用灰度值排序,把數字影象中一點的值用該點的乙個鄰域中各點值的中值代替,依次取代畫素中心點的灰度值,讓原本與周圍畫素灰度值相差比較大的畫素更改為與周圍的畫素值比較接近的值,從而消除孤立的雜訊點。它可以保護影象邊緣的同時去除雜訊。實現 clear all clc ...