信號處理算法學習筆記一.中值濾波算法


中值濾波算法

中值濾波可以過濾尖峰脈沖。目的在於我們對於濾波后的數據更感興趣。濾波后的數據保留的原圖像的變化趨勢,同時去除了尖峰脈沖對分析造成的影響。

中值濾波是用中值取代了原來要處理的數據,采樣長度越長,濾波效果越好,但是也會造成原始數據中過多信息的丟失。需要根據實際應用確定。

按照項目要求定義函數類型即可。
輸入參數說明

  1. int* Array為整數指針。傳入存儲數據的數組地址
  2. FilterLen 濾波器長度 ,傳入數組元素個數
int Median_filter(int* Array, unsigned char FilterLen)
{
   unsigned char i,j;
   int temp;
   
   // 用冒泡法對數組進行排序 ,從小到大排序 
   for (j = 0; j < FilterLen - 1; j++)
   {
   	 for(i = 0; i < FilterLen - 1 - j; i++)
   	 {
   	   if(Array[i] > Array[i+1])
   	   {
   	 	  //數據位置互換 
   	 	  temp = Array[i];
   	 	  Array[i] = Array[i+1];
   	 	  Array[i+1] = temp;
	   }   	 	  	 	
	 }
   }
      
   //判斷奇偶,返回中值
   if((FilterLen & 1) > 0)
   {
      //數組有奇數個元素,返回中間一個元素
      temp =  Array[(FilterLen + 1) / 2];    	
   } 
   else
   {
      //數組有偶數個元素,返回中間兩個元素的平均值
      temp = ( Array[FilterLen / 2] + Array[FilterLen / 2 - 1] ) / 2;
   }
   return  temp; 
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM