導航:首頁 > 源碼編譯 > 濾波平滑處理演算法

濾波平滑處理演算法

發布時間:2022-12-21 16:28:20

⑴ 圖像平滑處理的原理

這個可以使用均值濾波處理,它也叫圖像的平滑。均值濾波是典型的線性濾波演算法,它是指在圖像上對目標像素給一個模板,該模板包括了其周圍的臨近像素(以目標象素為中心的周圍8個象素,構成一個濾波模板,即去掉目標象素本身)。再用模板中的全體像素的平均值來代替原來像素值。

⑵ 處理表面缺陷圖像用什麼濾波方法

圖像濾波

剛獲得的圖像有很多噪音。這主要由於平時的工作和環境引起的,圖像增強是減弱噪音,增強對比度。想得到比較干凈清晰的圖像並不是容易的事情。為這個目標而為處理圖像所涉及的操作是設計一個適合、匹配的濾波器和恰當的閾值。常用的有高斯濾波、均值濾波、中值濾波、最小均方差濾波、Gabor濾波。

由於高斯函數的傅立葉變換仍是高斯函數, 因此高斯函數能構成一個在頻域具有平滑性能的低通濾波器。可以通過在頻域做乘積來實現高斯濾波。均值濾波是對是對信號進行局部平均, 以平均值來代表該像素點的灰度值。矩形濾波器(Averaging Box Filter)對這個二維矢量的每一個分量進行獨立的平滑處理。通過計算和轉化 ,得到一幅單位矢量圖。這個 512×512的矢量圖被劃分成一個 8×8的小區域 ,再在每一個小區域中 ,統計這個區域內的主要方向 ,亦即將對該區域內點方向數進行統計,最多的方向作為區域的主方向。於是就得到了一個新的64×64的矢量圖。這個新的矢量圖還可以採用一個 3×3模板進行進一步的平滑。

中值濾波是常用的非線性濾波方法 ,也是圖像處理技術中最常用的預處理技術。它在平滑脈沖雜訊方面非常有效,同時它可以保護圖像尖銳的邊緣。加權中值濾波能夠改進中值濾波的邊緣信號保持效果。但對方向性很強的指紋圖像進行濾波處理時 ,有必要引入方向信息,即利用指紋方向圖來指導中值濾波的進行。

最小均方差濾波器,亦稱維納濾波器,其設計思想是使輸入信號乘響應後的輸出,與期望輸出的均方誤差為最小。

Gabor變換是英國物理學家 Gabor提出來的,由「測不準原理」可知,它具有最小的時頻窗,即Gabor函數能做到具有最精確的時間-頻率的局部化;另外, Gabor函數與哺乳動物的視覺感受野相當吻合,這一點對研究圖像特徵檢測或空間頻率濾波非常有用。恰當的選擇其參數, Gabor變換可以出色地進行圖像分割、識別與理解。如文獻提出的基於Gabor濾波器的增強演算法。

⑶ 高斯濾波的演算法原理

高斯濾波實質上是一種信號的濾波器,其用途是信號的平滑處理,人們知道數字圖像用於後期應用,其雜訊是最大的問題,由於誤差會累計傳遞等原因,很多圖像處理教材會在很早的時候介紹Gauss濾波器,用於得到信噪比SNR較高的圖像(反應真實信號)。與此相關的有Gauss-Laplace變換,其實就是為了得到較好的圖像邊緣,先對圖像做Gauss平滑濾波,剔除雜訊,然後求二階導矢,用二階導的過零點確定邊緣,在計算時也是頻域乘積=>空域卷積。
濾波器就是建立的一個數學模型,通過這個模型來將圖像數據進行能量轉化,能量低的就排除掉,雜訊就是屬於低能量部分。
若使用理想濾波器,會在圖像中產生振鈴現象。採用高斯濾波器的話,系統函數是平滑的,避免了振鈴現象。

⑷ 平滑濾波的3×3演算法原理

平滑濾波
低頻增強的空間域濾波技術
平滑濾波是低頻增強的空間域濾波技術。它的目的有兩類:一類是模糊;另一類是消除噪音。空間域的平滑濾波一般採用簡單平均法進行,就是求鄰近像元點的平均亮度值。鄰域的大小與平滑的效果直接相關,鄰域越大平滑的效果越好,但鄰域過大,平滑會使邊緣信息損失的越大,從而使輸出的圖像變得模糊,因此需合理選擇鄰域的大小。
中文名
平滑濾波
外文名
Smoothing
拼音
píng huá lǜ bō
注音
ㄆㄧㄥˊ ㄏㄨㄚˊㄌㄩˋ ㄅㄛ
濾波目的處理要求濾波原因濾波方法其他方式TA說
濾波目的
濾波的本義是指信號有各種頻率的成分,濾掉不想要的成分,即為濾掉常說的雜訊,留下想要的成分.這即是濾波的過程,也是目的.
一是抽出對象的特徵作為圖像識別的特徵模式;另一個是為適應圖像處理的要求,消除圖像數字化時所混入的雜訊。
處理要求
一是不能損壞圖像的輪廓及邊緣等重要信息;二是使圖像清晰視覺效果好。
濾波原因
各類圖像處理系統在圖像的採集、獲取、傳送和轉換(如成像、復制掃描、傳輸以及顯示等)過程中,均處在復雜的環境中,光照、電磁多變,所有的圖像均不同程度地被可見或不可見的雜訊干擾。雜訊源包括電子雜訊、光子雜訊、斑點雜訊和量化雜訊。如果信噪比低於一定的水平,雜訊逐漸變成可見的顆粒形狀,導致圖像質量的下降。除了視覺上質量下降,雜訊同樣可能掩蓋重要的圖像細節,在對採集到的原始圖像做進一步的分割處理時,我們發現有一些分布不規律的椒鹽雜訊,為此採取相應的對策就是對圖像進行必要的濾波降噪處理。
濾波方法
圖像的雜訊濾波器有很多種,常用的有線性濾波器,非線性濾波器。採用線性濾波如鄰域平滑濾波,對受到雜訊污染而退化的圖像復原,在很多情況下是有效的。但大多數線性濾波器具有低通特性,去除雜訊的同時也使圖像的邊緣變模糊了。而另一種非線性濾波器如中值濾波,在一定程度上可以克服線性濾波器所帶來的圖像模糊問題,在濾除雜訊的同時,較好地保留了圖像的邊緣信息。
鄰域平滑濾波原理
鄰域平均法[2]是一種利用Box模版對圖像進行模版操作(卷積運算)的圖像平滑方法,所謂Box模版是指模版中所有系數都取相同值的模版,常用的3×3和5×5模版如下:
鄰域平均法的數學含義是:
(式4-1)
式中:x,y=0,1,…,N-1;S是以(x,y)為中心的鄰域的集合,M是S內的點數。
鄰域平均法的思想是通過一點和鄰域內像素點求平均來去除突變的像素點,從而濾掉一定雜訊,其優點是演算法簡單,計算速度快,其代價會造成圖像在一定程度上的模糊。
中值濾波原理
中值濾波[2]就是用一個奇數點的移動窗口,將窗口的中心點的值用窗口內的各點中值代替。假設窗口內有五點,其值為80、90、200、110和120,那麼此窗口內各點的中值及為110。
設有一個一維序列f1,f2,…,fn,取窗口長度(點數)為m(m為奇數),對其進行中值濾波,就是從輸入序列中相繼抽出m個數fi-v,…,fi-1,fi,fi+1,…,fi+v(其中fi為窗口中心值,v=(m-1)/2),再將這m個點按其數值大小順序排序,取其序號的中心點的那個數作為濾波輸出。數學公式表示為:
Yi=Med{fi-v,…,fi-1,fi,fi+1,…,fi+v} i∈N v=(m-1)/2 (式4-2)
Yi稱為序列fi-v,…,fi-1,fi,fi+1,…,fi+v的中值
例如,有一序列{0,3,4,0,7},重新排序後為{0,0,3,4,7}則Med{0,0,3,4,7}=3。此列若用平滑濾波,窗口也取5,那麼平滑濾波輸出為(0+3+4+0+7)/5=2.8。
把一個點的特定長度或形狀的鄰域稱作窗口。在一維情況下,中值濾波器是一個含有奇數個像素的滑動窗口。中值濾波很容易推廣到二維,此時可以利用二維形式的窗口。
對於平面圖像採用的二維中值濾波可以由下式表示:
(式4-3)
式中:A為窗口,{fij}為二維數據序列,即數字圖像各點的灰度值。
對於本系統,由於採集到的是24位真彩色圖像,每個像素點分別有R、G、B三個灰度分量,故要在窗口內分別找到這三個分量的中值,分別用這三個中值去代替窗口中心像素點的R、G、B三個灰度分量的值。

⑸ OpenCV C++(五)----圖像平滑

每一幅圖像都包含某種程度的雜訊,雜訊可以理解為由一種或者多種原因造成的灰 度值的隨機變化,如由光子通量的隨機性造成的雜訊等,在大多數情況下,通過平滑技術(也常稱為濾波技術)進行抑制或者去除, 其中具備保持邊緣(Edge Preserving)作用的平滑技術得到了更多的關注。常用的平滑處理演算法包括基於二維離散卷積的高斯平滑、均值平滑,基於統計學方法的中值平滑,具備保持邊緣作用的平滑演算法的雙邊濾波、導向濾波等。

I與K的二維離散卷積的計算步驟如下。

顯然,高為H1、寬為W1的矩陣I與高為H2、寬為W2的卷積核K 的full卷積結果是一 個高為 H1+H2-1 、寬為 W1+W2-1 的矩陣,一般H2 ≤H1,W2 ≤W1。

從full卷積的計算過程可知, 如果Kflip靠近I 的邊界, 那麼就會有部分延伸到I之外而導致訪問到未定義的值, 忽略邊界,只是考慮I能完全覆蓋Kflip內的值的情況, 該過程稱為valid卷積。
當然, 只有當H2≤H1且W2≤W1時才會存在 valid卷積 。

為了使得到的卷積結果和原圖像的高、寬相等,所以通常在計算過程中給Kflip指定 一個「錨點」, 然後將「錨點」循環移至圖像矩陣的(r, c) 處, 其中0≤r< H1, 0≤c<W1,接下來對應位置的元素逐個相乘,最後對所有的積進行求和作為輸出圖像矩陣在 (r, c) 處的輸出值。這個卷積過程稱為same卷積,

大部分時候,為了更方便地指定卷積核的錨點,通常卷積核的寬、高為奇數,那麼可以簡單地令中心點為錨點的位置。same卷積是full卷積的一部分,而如果valid卷積存在,那麼valid卷積是same卷積的一部分。

對於full卷積和same卷積,矩陣I 邊界處的值由於缺乏完整的鄰接值,因此卷積運算 在這些區域需要特殊處理,方法是進行邊界擴充,有如下幾種常用方式。

利用上述不同的邊界擴充方式得到的same卷積只是在距離矩陣上、下、左、右四個邊界小於卷積核半徑的區域內值會不同,所以只要在用卷積運算進行圖像處理時,圖像的重要信息不要落在距離邊界小於卷積核半徑的區域內就行。

如果一個卷積核至少由兩個尺寸比它小的卷積核full卷積而成,並且在計算過程中在所有邊界處均進行擴充零的操作,且滿足

其中kerneli的尺寸均比Kernel小,1≤i≤n,則稱該卷積核是可分離的。

在圖像處理中經常使用這樣的卷積核,它可以分離為一維水平方向和一維垂直方向上的卷積核。

(1)full卷積性質

如果卷積核Kernel是可分離的, 且Kernel=kernel1★kernel2, 則有:

(2)same卷積性質

其中

其中,根據可分離卷積的性質,有

理解了上述高斯平滑的過程, 就可以明白OpenCV實現的高斯平滑函數:

從參數的設置可以看出, GaussianBlur 也是通過分離的高斯卷積核實現的,也可以令水平方向和垂直方向上的標准差不相同,但是一般會取相同的標准差。 當平滑窗口比較小時, 對標准差的變化不是很敏感, 得到的高斯平滑效果差別不大; 相反,當平滑窗口 較大時,對標准差的變化很敏感, 得到的高斯平滑效果差別較大 。

利用卷積核 的分離性和卷積的結合律,雖然減少了運算量,但是隨著卷積核窗口的增加,計算量仍會繼續增大,可以利用圖像的積分,實現時間復雜度為O(1)的快速均值平滑。

即任意一個位置的積分等於該位置左上角所有值的和。 利用矩陣的積分,可以計算出矩陣中任意矩形區域的和。

中值濾波最重要的能力是去除椒鹽雜訊。椒鹽雜訊是指在圖像傳輸系統中由於解碼誤差等原因,導致圖像中出現孤立的白點或者黑點。

一般來說,如果圖像中出現較亮或者較暗的物體,若其大小小於中值平滑的窗口半徑,那麼它們基本上會被濾掉,而較大的目標則幾乎會原封不動地保存下來。

中值平滑需要對鄰域中的所有像素點按灰度值排序, 一般比卷積運算要慢。

在OpenCV中同樣通過定義函數:

此外, 中值平滑只是排序統計平滑中的一種, 如果將取鄰域的中值變為取鄰域中的 最小值或者最大值, 顯然會使圖像變暗或者變亮。 這類方法就是後面要介紹的形態學 處理的基礎。

高斯平滑、均值平滑在去除圖像雜訊時,會使圖像的邊緣信息變得模糊,接下來就 介紹在圖像平滑處理過程中可以保持邊緣的平滑演算法: 雙邊濾波和導向濾波。

雙邊濾波是根據每個位置的鄰域, 對該位置構建不同的權重模板。 詳細過程如下:

其中0≤h<winH, 0≤w<winW, 且每個位置的空間距離權重模板是相同的。

其中0≤h<winH, 0≤w<winW, 顯然每個位置的相似性權重模板是不一樣的。

整個過程只在第二步計算相似性權重模板時和雙邊濾波不同, 但是對圖像平滑的效果, 特別是對紋理圖像來說, 卻有很大的不同。

擴展
循環引導濾波 是一種 迭代 的方法, 本質上是一種多次迭代的聯合雙邊濾波, 只是每次計算相似性權重 模板的依據不一樣——利用本次計算的聯合雙邊濾波結果作為下一次聯合雙邊濾波計算 相似性權重模板的依據。

導向濾波在平滑圖像的基礎上,有良好的保邊作用, 而且在細節增強等方面都有良好的表現,在執行時間上也比雙邊濾波快很多。

⑹ 如何用MATLAB實現對曲線的平滑濾波

clc,clear;
a
=
1:1:6;
%橫坐標
b
=
[8.0
9.0
10.0
15.0
35.0
40.0];
%縱坐標
plot(a,
b,
'b');
%自然狀態的畫圖效果
hold
on;
%第一種,畫平滑曲線的方法
c
=
polyfit(a,
b,
2);
%進行擬合,c為2次擬合後的系數
d
=
polyval(c,
a,
1);
%擬合後,每一個橫坐標對應的值即為d
plot(a,
d,
'r');
%擬合後的曲線
plot(a,
b,
'*');
%將每個點
用*畫出來
hold
on;
%第二種,畫平滑曲線的方法
values
=
spcrv([[a(1)
a
a(end)];[b(1)
b
b(end)]],3);
plot(values(1,:),values(2,:),
'g');
建議學會使用搜索引擎,網路「matlab曲線平滑「出來一堆方法

⑺ 用MATLAB實現頻域平滑濾波以及圖像去噪代碼

%%%%%%%%spatial frequency (SF) filtering by low pass filter%%%%%%%%

% the SF filter is unselective to orientation (doughnut-shaped in the SF
% domain).

[FileName,PathName,FilterIndex] = uigetfile ;
filename = fullfile(PathName, FileName) ;

[X map] = imread(filename, fmt); % read image
L = double(X); % transform to double
%%%%%%%%%%%%% need to add (-1)x+y to L

% calculate the number of points for FFT (power of 2)
fftsize = 2 .^ ceil(log2(size(L)));
% 2d fft
Y = fft2(X, fftsize(1), fftsize (2));
Y = fftshift(Y);

% obtain frequency (cycles/pixel)
f0 = floor([m n] / 2) + 1;
fy = ((m: -1: 1) - f0(1) + 1) / m;
fx = ((1: n) - f0(2)) / n;
[mfx mfy] = meshgrid(fx, fy);

% calculate radius
SF = sqrt(mfx .^ 2 + mfy .^ 2);

% SF-bandpass and orientation-unselective filter
filt = SF > k0;

A_filtered = filt .* A; % SF filtering
L_filtered = real(ifft2(ifftshift(A_filtered))); % IFFT
L_filtered = L_filtered(1: size(L, 1), 1: size(L, 2));
%%%%%%%%%%need to add (-1)x + y to L_filtered

% show
figure(1);
clf reset;
colormap gray;

% plot image
subplot(2, 2, 1);
imagesc(L);
colorbar;
axis square;
set(gca, 'TickDir', 'out');
title('original image');
xlabel('x');
ylabel('y');
imwrite(L, fullfile(FilePath, 'original image.bmp'), 'bmp') ;

% plot amplitude
A = abs(A);
A = log10(A);
% spectral amplitude
subplot(2, 2, 2);
imagesc(fx, fy, A);
axis xy;
axis square;
set(gca, 'TickDir', 'out');
title('amplitude spectrum');
xlabel('fx (cyc/pix)');
ylabel('fy (cyc/pix)');
imwrite(A, fullfile(FilePath, 'amplitude spectrum.bmp'), 'bmp') ;

% filter in the SF domain
subplot(2, 2, 3);
imagesc(fx, fy, filt);
axis xy;
axis square;
set(gca, 'TickDir', 'out');
title('filter in the SF domain');
xlabel('fx (cyc/pix)');
ylabel('fy (cyc/pix)');
imwrite(filt, fullfile(FilePath, 'filter in SF.bmp'), 'bmp') ;

% filtered image
subplot(2, 2, 4);
imagesc(L_filtered);
colorbar;
axis square;
set(gca, 'TickDir', 'out');
title('filtered image');
xlabel('x');
ylabel('y');
imwrite(filtered, fullfile(FilePath, 'filtered image.bmp'), 'bmp');

%%%%%%%%%%%%%%%%%median filter%%%%%%%%%%%%%%%%
[FileName,PathName,FilterIndex] = uigetfile ;
filename = fullfile(PathName, FileName) ;

[LNoise map] = imread(filename, fmt); % read image
L = medfilt2(LNoise, [3 3]); % remove the noise with 3*3 block

figure ;
imshow(LNoise) ;
title('image before fitlering') ;
figure
imshow(L)
title('filtered image') ;
imwrite(FilePath, 'filtered image.bmp', bmp)

⑻ 濾波在數學上是如何實現的

單片機進行數據採集時,會遇到數據的隨機誤差,隨機誤差是由隨機干擾引起的,其特點是在相同條件下測量同一量時,其大小和符號會現無規則的變化而無法預測,但多次測量的結果符合統計規律。為克服隨機干擾引起的誤差,硬體上可採用濾波技術,軟體上可採用軟體演算法實現數字濾波。濾波演算法往往是系統測控演算法的一個重要組成部分,實時性很強。

採用數字濾波演算法克服隨機干擾的誤差具有以下優點:

1、數字濾波無需其他的硬體成本,只用一個計算過程,可靠性高,不存在阻抗匹配問題。尤其是數字濾波可以對頻率很低的信號進行濾波,這是模擬濾波器做不到的。
2、數字濾波使用軟體演算法實現,多輸入通道可共用一個濾波程序,降低系統開支。
3、只要適當改變濾波器的濾波程序或運算,就能方便地改變其濾波特性,這對於濾除低頻干擾和隨機信號會有較大的效果。
4、在單片機系統中常用的濾波演算法有限幅濾波法、中值濾波法、算術平均濾波法、加權平均濾波法、滑動平均濾波等。

(1)限幅濾波演算法

該運算的過程中將兩次相鄰的采樣相減,求出其增量,然後將增量的絕對值,與兩次采樣允許的最大差值A進行比較。A的大小由被測對象的具體情況而定,如果小於或等於允許的最大差值,則本次采樣有效;否則取上次采樣值作為本次數據的樣本。

演算法的程序代碼如下:

#defineA //允許的最大差值
chardata; //上一次的數據
char filter()
{
chardatanew; //新數據變數
datanew=get_data(); //獲得新數據變數
if((datanew-data)>A||(data-datanew>A))
return data;
else
returndatanew;
}

說明:限幅濾波法主要用於處理變化較為緩慢的數據,如溫度、物體的位置等。使用時,關鍵要選取合適的門限制A。通常這可由經驗數據獲得,必要時可通過實驗得到。

(2)中值濾波演算法

該運算的過程是對某一參數連續采樣N次(N一般為奇數),然後把N次采樣的值按從小到大排列,再取中間值作為本次采樣值,整個過程實際上是一個序列排序的過程。

演算法的程序代碼如下:
#define N11 //定義獲得的數據個數
char filter()
{
charvalue_buff[N]; //定義存儲數據的數組
char count,i,j,temp;
for(count=0;count
{
value_buf[count]=get_data();
delay(); //如果採集數據比較慢,那麼就需要延時或中斷
}
for(j=0;j
{
for(value_buff[i]>value_buff[i+1]
{
temp=value_buff[i];
value_buff[i]=value_buff[i+1];
value_buff[i+1]=temp;
}
}
returnvalue_buff[(N-1)/2];
}

說明:中值濾波比較適用於去掉由偶然因素引起的波動和采樣器不穩定而引起的脈動干擾。若被測量值變化比較慢,採用中值濾波法效果會比較好,但如果數據變化比較快,則不宜採用此方法。

(3)算術平均濾波演算法

該演算法的基本原理很簡單,就是連續取N次采樣值後進行算術平均。
演算法的程序代碼如下:
char filter()
{
int sum=0;
for(count=0;count
{
sum+=get_data();
delay():
}
return (char)(sum/N);
}

說明:算術平均濾波演算法適用於對具有隨機干擾的信號進行濾波。這種信號的特點是有一個平均值,信號在某一數值附近上下波動。信號的平均平滑程度完全到決於N值。當N較大時,平滑度高,靈敏度低;當N較小時,平滑度低,但靈敏度高。為了方便求平均值,N一般取4、8、16、32之類的2的整數冪,以便在程序中用移位操作來代替除法。

(4)加權平均濾波演算法

由於前面所說的「算術平均濾波演算法」存在平滑度和靈敏度之間的矛盾。為了協調平滑度和靈敏度之間的關系,可採用加權平均濾波。它的原理是對連續N次采樣值分別乘上不同的加權系數之後再求累加,加權系數一般先小後大,以突出後面若干采樣的效果,加強系統對參數變化趨勢的認識。各個加權系數均小於1的小數,且滿足總和等於1的結束條件。這樣加權運算之後的累加和即為有效采樣值。其中加權平均數字濾波的數學模型是:

式中:D為N個采樣值的加權平均值:XN-i為第N-i次采樣值;N為采樣次數;Ci為加權系數。加權系數Ci體現了各種采樣值在平均值中所佔的比例。一般來說采樣次數越靠後,取的比例越大,這樣可增加新采樣在平均值中所佔的比重。加權平均值濾波法可突出一部分信號抵制另一部分信號,以提高采樣值變化的靈敏度。

樣常式序代碼如下:

char codejq[N]={1,2,3,4,5,6,7,8,9,10,11,12}; //code數組為加權系數表,存在程序存儲區
char codesum_jq=1+2+3+4+5+6+7+8+9+10+11+12;
char filter()
{
char count;
char value_buff[N];
int sum=0;
for(count=0;count
{
value_buff[count]=get_data();
delay();
}
for(count=0;count
sum+=value_buff[count]*jq[count];
return(char)(sum/sum_jq);
}

(5)滑動平均濾波演算法

以上介紹和各種平均濾波演算法有一個共同點,即每獲取一個有效采樣值必須連續進行若干次采樣,當采速度慢時,系統的實時得不到保證。這里介紹的滑動平均濾波演算法只採樣一次,將一次采樣值和過去的若干次采樣值一起求平均,得到的有效采樣值即可投入使用。如果取N個采樣值求平均,存儲區中必須開辟N個數據的暫存區。每新採集一個數據便存入暫存區中,同時去掉一個最老數據,保存這N個數據始終是最新更新的數據。採用環型隊列結構可以方便地實現這種數據存放方式。

程序代碼如下:
char value_buff[N];
char i=0;
char filter()
{
char count;
int sum=0;
value_buff[i++]=get_data();
if(i==N)
i=0;
for(count=0;count
sum=value_buff[count];
return (char)(sum/N);
}

(6)低通濾波

將普通硬體RC低通濾波器的微分方程用差分方程來表求,變可以採用軟體演算法來模擬硬體濾波的功能,經推導,低通濾波演算法如下:

Yn=a* Xn+(1-a) *Yn-1
式中 Xn——本次采樣值
Yn-1——上次的濾波輸出值;
,a——濾波系數,其值通常遠小於1;
Yn——本次濾波的輸出值。

由上式可以看出,本次濾波的輸出值主要取決於上次濾波的輸出值(注意不是上次的采樣值,這和加權平均濾波是有本質區別的),本次采樣值對濾波輸出的貢獻是比較小的,但多少有些修正作用,這種演算法便模擬了具體有教大慣性的低通濾波器功能。濾波演算法的截止頻率可用以下式計算:

fL=a/2Pit pi為圓周率3.14…
式中 a——濾波系數;
, t——采樣間隔時間;
例如:當t=0.5s(即每秒2次),a=1/32時;
fL=(1/32)/(2*3.14*0.5)=0.01Hz

當目標參數為變化很慢的物理量時,這是很有效的。另外一方面,它不能濾除高於1/2采樣頻率的干攪信號,本例中采樣頻率為2Hz,故對1Hz以上的干攪信號應採用其他方式濾除,

低通濾波演算法程序於加權平均濾波相似,但加權系數只有兩個:a和1-a。為計算方便,a取一整數,1-a用256-a,來代替,計算結果捨去最低位元組即可,因為只有兩項,a和1-a,均以立即數的形式編入程序中,不另外設表格。雖然采樣值為單元位元組(8位A/D)。為保證運算精度,濾波輸出值用雙位元組表示,其中一個位元組整數,一位元組小數,否則有可能因為每次捨去尾數而使輸出不會變化。
設Yn-1存放在30H(整數)和31H(小數)兩單元中,Yn存放在32H(整數)和33H(小數)中。濾波程序如下:
雖千萬里,吾往矣。

⑼ 高斯濾波器平滑圖像是什麼原理,能簡單解釋下嗎

主要是平滑圖像~~~高斯函數具有五個重要的性質,這些性質使得它在早期圖像處理中特別有用.這些性質表明,高斯平滑濾波器無論在空間域還是在頻率域都是十分有效的低通濾波器,且在實際圖像處理中得到了工程人員的有效使用.高斯函數具有五個十分重要的性質,它們是:
(1)二維高斯函數具有旋轉對稱性,即濾波器在各個方向上的平滑程度是相同的.一般來說,一幅圖像的邊緣方向是事先不知道的,因此,在濾波前是無法確定一個方向上比另一方向上需要更多的平滑.旋轉對稱性意味著高斯平滑濾波器在後續邊緣檢測中不會偏向任一方向.
(2)高斯函數是單值函數.這表明,高斯濾波器用像素鄰域的加權均值來代替該點的像素值,而每一鄰域像素點權值是隨該點與中心點的距離單調增減的.這一性質是很重要的,因為邊緣是一種圖像局部特徵,如果平滑運算對離運算元中心很遠的像素點仍然有很大作用,則平滑運算會使圖像失真.
(3)高斯函數的付立葉變換頻譜是單瓣的.正如下面所示,這一性質是高斯函數付立葉變換等於高斯函數本身這一事實的直接推論.圖像常被不希望的高頻所污染(雜訊和細紋理).而所希望的圖像特徵(如邊緣),既含有低頻分量,又含有高頻分量.高斯函數付立葉變換的單瓣意味著平滑圖像不會被不需要的高頻所污染,同時保留了大部分所需.
(4)高斯濾波器寬度(決定著平滑程度)是由參數σ表徵的,而且σ和平滑程度的關系是非常簡單的.σ越大,高斯濾波器的頻帶就越寬,平滑程度就越好.通過調節平滑程度參數σ,可在圖像特徵過分模糊(過平滑)與平滑圖像中由於雜訊和細紋理所引起的過多的不希望突變數(欠平滑)之間取得折衷.
(5)由於高斯函數的可分離性,大高斯濾波器可以得以有效地實現.二維高斯函數卷積可以分兩步來進行,首先將圖像與一維高斯函數進行卷積,然後將卷積結果與方向垂直的相同一維高斯函數卷積.因此,二維高斯濾波的計算量隨濾波模板寬度成線性增長而不是成平方增長.
硬之城上面應該有這個,可以去看看有沒有教程之類的,因為畢竟上面的技術資料型號等都很全面也是最新的,所以能解決很多問題。

⑽ 數字信號測量中的平滑演算法怎麼算

其實最簡單的平滑演算法就是對之前的數據求一個平均值,即
y(t) = (y(t-n)+y(t-n+1)+...+y(t))/(n+1)
其實,這么做的理由很簡單,這相當於是一個n+1階的FIR濾波器,然後每個系數都是1/(n+1)。
說白了,就是一個低通濾波器,因此可以起到抑制毛刺等高頻信號的結果。
其實,我個人認為,如果你好好設計一個FIR濾波器,然後按照那個系數來進行調整,比這種方法去掉毛刺的效果好得多,你可以利用matlab的工具fdatool,有不懂可以繼續追問。

閱讀全文

與濾波平滑處理演算法相關的資料

熱點內容
php開發客戶端 瀏覽:996
theisle測試服怎麼搜伺服器 瀏覽:445
廣播PDF 瀏覽:216
單片機編程300例匯編百度 瀏覽:33
騰訊雲連接不上伺服器 瀏覽:221
不能用來表示演算法的是 瀏覽:859
6軸機器人演算法 瀏覽:890
手機主題照片在哪個文件夾 瀏覽:294
安卓手機後期用什麼軟體調色 瀏覽:628
cad修改快捷鍵的命令 瀏覽:242
好錢包app怎麼登錄不了 瀏覽:859
樹莓派都用python不用c 瀏覽:757
access文件夾樹的構造 瀏覽:662
安卓多指操作怎麼設置 瀏覽:658
linux樹形目錄 瀏覽:727
平方根的簡單演算法 瀏覽:898
千牛訂單頁面信息加密取消 瀏覽:558
單片機自製紅外遙控燈 瀏覽:719
伺服器最小配置怎麼弄 瀏覽:853
ibm伺服器硬體如何升級 瀏覽:923