原创 刚写了一个中位值滤波程序,无需事先排序的

2009-5-8 15:49 2788 11 11 分类: MCU/ 嵌入式


//
//------------------------------
//
//  中位值滤波
// 
//------------------------------
//

uint16 GetTheMiddleValue(uint16 *Pointer,uint8 Length)
{
    uint8 i;
    uint32 temp32 = 0;
 
    uint16 MaxVal = 0x0000;
    uint16 MinVal = 0xffff;


    if ( Length>2 )
    {
        for ( i="0";i<Length;i++ )
        {
            if ( Pointer> MaxVal)
            {
                MaxVal = Pointer;
            }
            if ( Pointer<MinVal )
            {
                MinVal = Pointer;
            }
            temp32 += Pointer;
        }
        temp32 = (temp32-MaxVal-MinVal)/(Length-2);
    }
    else
    {
        for ( i="0";i<Length;i++ )
        {
            temp32 += Pointer;
        }
        temp32 = temp32/Length;
    }
    return (uint16)temp32;
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /3 下一条