MATLAB實現中值濾波演算法

2021-07-30 10:01:48 字數 712 閱讀 7305

[m, n] = size(x); %m表示行數(即高度);n表示列數(即寬度)

x = imnoise(x,'salt & pepper',0.02);

subplot(1,2,1)

imshow(x);

title('原圖');

x1 = double(x);

x2 = x1;

%% --------------------------------%

% 此處的演算法缺點是未對邊界值做出改變

for i = 1:m-3+1

for j = 1:n-3+1

mb = x1( i:(i+3-1), j:(j+3-1) ); %取出模板元素

mb = mb(:);     %矩陣中的元素以一列輸出

mm = median(mb);%取向量的中值 

x2( i+(3-1)/2, j+(3-1)/2 ) = mm; %對中心元素賦值

endend

%% --------------------------------%

dstimage = uint8(x2);

subplot(1,2,2)

imshow(dstimage);

title('效果圖');

中值濾波 MATLAB實現

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

中值濾波(matlab)

中值濾波 是一種非線性數字濾波器技術,用於降噪。理解 去乙個模板,可為3 3,5 5,n n 每次從影象中取出模板大小的矩陣,將所有元素排序,取中間值放入木板的中心位置,再還原到原圖中,以此類推掃瞄整個影象。可先對影象進行填充,填充函式 b padarray a,padsize,padval,dir...

自適應中值濾波及matlab實現

常規的中值濾波器,在雜訊的密度不是很大的情況下 根據經驗,雜訊的出現的概率小於0.2 效果不錯。但是當概率出現的概率較高時,常規的中值濾波處理後,仍然具有雜訊點,並丟失了細節和邊緣,效果不是很好。在模板視窗sxy定義的濾波器區域內定義如下變數 zmin min sxy 模板視窗sxy中的最小灰度值 ...