基于冒泡排序算法的中值滤波器

//-------------------------------------------------------------------------------------------------------------------------
//@function : median_filer_bubble
//@parameter
//  @_data : 要滤波的数据
//@return :
//@data_filtered :    
//@brief :
//  
//-------------------------------------------------------------------------------------------------------------------------




#define MEDIAN_FILTER_NUM_BUBBLE 12     // Â˲¨Æ÷³¤¶È
#define MEDIAN_FILTER_NUM_BUBBLE_RETURN (MEDIAN_FILTER_NUM_BUBBLE/2)  // Â˲¨Æ÷ÖмäλÖ㬲ÉÓÃÔ¤´¦ÀíÆ÷½ÚÊ¡¼ÆËãʱ¼ä£¬
// ²»ÒªÔÚ³ÌÐò×îºó²ÉÓóý·¨ÔËËãÀ´½øÐÐÊý¾Ý·µ»ØµÄÒ»¸ö¸³Öµ
float median_filer_bubble( float _data )
{
static float data_not_sorted[MEDIAN_FILTER_NUM_BUBBLE] = {0},   // δsortµÄÊý¾ÝµÄ´æ´¢
data_sorted[MEDIAN_FILTER_NUM_BUBBLE] = {0};      // sort¹ýºóÊý¾ÝµÄ´æ´¢
static unsigned char filter_cnt = 0 ;  // ÊäÈëÊý¾Ýµ±Ç°µ½ÁËÄǸöλÖüǼ
unsigned char i = 0 , j = 0;
// ½«Êý¾Ý´æµ½Î´ÅÅÐòµÄ±íÖÐ
data_not_sorted[filter_cnt] = _data ;
if( filter_cnt == MEDIAN_FILTER_NUM_BUBBLE - 1 ){  // ´æ´¢¿Õ¼ä»¹Î´Âú
filter_cnt = 0 ;
}
else
filter_cnt ++ ;
//½«Êý¾ÝÈ¡µ½Òª½øÐÐÅÅÐòµÄ±íÖÐ
for( i = 0 ; i < MEDIAN_FILTER_NUM_BUBBLE ; i++ ){
data_sorted[i] = data_not_sorted[i] ;  // ½«Êý¾Ý·ÅÈëÒª½øÐÐÅÅÐòµÄ±íÖÐ
}
//ÏÂÃ濪ʼðÅÝÅÅÐò
for( i = 0 ; i < MEDIAN_FILTER_NUM_BUBBLE ; i ++ ){
for( j = MEDIAN_FILTER_NUM_BUBBLE - 1  ; j > i ; j -- ){
float swap_a,swap_b ;   // ½»»»Êý¾Ý
if( data_sorted[j] < data_sorted[j-1] ){ //Èç¹ûСµÄÊý¾ÝÔÚºóÃ棬ÄÇô¾Í½»»»Êý¾ÝλÖÃ
swap_a = data_sorted[j] ;
swap_b = data_sorted[j-1] ;
data_sorted[j-1] = swap_a ;
data_sorted[j] = swap_b ;
}
}
}
return data_sorted[MEDIAN_FILTER_NUM_BUBBLE_RETURN] ;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值