基于matlab的中值滤波算法浅析
生活随笔
收集整理的這篇文章主要介紹了
基于matlab的中值滤波算法浅析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
-
首先簡述一下中值濾波算法:以1000個數據為例,取奇數個數為一組(如5個數為一組),則共有995組數據。
為什么是995組?假如我們取第1,2,3,4,5個數為第一組,那么第二組是第2,3,4,5,6這5位數。若第2組是6,7,8,9,10,那么總的數據會少了將近800組,嚴重損壞數據。
?
? 簡單簡述下代碼
-
首先是數據提取。為了簡單起見,我從一個二維txt文件中提取數據,并取其中的一列(代碼顯示是取第7列)
- data_sum_A=importdata('E:\MATLAB代碼\toulan.txt');
data_B=data_sum_A(:,7);
importdata函數是matlab中非常好用的從文件中提取數據的算法。具體這里不多說了,可以在命令窗口中用 help importdata 查一下
-
接下來先把原圖畫出來
- subplot(2,1,1);
address_B = plot(data_B);
title('原始數據');
get(address_B);
set(address_B,'LineStyle','-.');
?用get以及set函數設定圖像的樣式。
-
用上面說的算法處理數據:
i=1; N=4; L=length(data_B);for i=1:L-Ndata_C(i)=median(data_B(i:i+N)); endsubplot(2,1,2); plot(data_C); title('中值濾波后');?這里用到了取中位數的函數median,其返回值就是一個中位數。
- ?
總結
以上是生活随笔為你收集整理的基于matlab的中值滤波算法浅析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jquery Uploadify之Jav
- 下一篇: 图像处理小tip——中值滤波的多种实现(