天下

记录修行的印记

判断手指按下

void BlockVar(const UINT8 *pImg, UINT32 *p_var, UINT32 *p_avr)
{
    UINT8 i;
    UINT8 j;
    UINT8 *p;
    UINT32 AverTemp=0;
    UINT32 VarTemp=0;

    p=(UINT8 *)pImg;
    //block 32*32
    for(i=0;i<32;i++)
    {
        p=(UINT8*)(pImg+256*i);
        for(j=0;j<32;j++)
        {
            AverTemp+=*p;
            p++;
        }
    }
    AverTemp>>=10;
    *p_avr=AverTemp;

    for(i=0;i<32;i++)
    {
        p=(UINT8 *)(pImg+256*i);
        for(j=0;j<32;j++)
        {
            VarTemp+=SQ((*p)-AverTemp);
            p++;
        }
    }
    *p_var=(VarTemp>>10);

}

bool FpIsPressFinger(const UINT8 *pImg)
{
    UINT32  AverTemp=0;
    UINT32  VarTemp=0;
    UINT32  Aver_Var_Val = 0;

    UINT32  VarTemps    =0;
    UINT32  AverTemps = 0;    

    //BLOCK 1
    BlockVar(pImg+(85+6)*256+256/3+11,&VarTemp,&AverTemp);
    AverTemps+=AverTemp;
    VarTemps+=VarTemp;

    //BLOCK 2
    BlockVar(pImg+(85+6)*256+256/3+11+32+10,&VarTemp,&AverTemp);
    AverTemps+=AverTemp;
    VarTemps+=VarTemp;

    //BLOCK 3
    BlockVar(pImg+(85+7+32+6)*256+256/3+11,&VarTemp,&AverTemp);
    AverTemps+=AverTemp;
    VarTemps+=VarTemp;

    //BLOCK 4
    BlockVar(pImg+(85+7+32+6)*256+256/3+11+32+10,&VarTemp,&AverTemp);
    AverTemps+=AverTemp;
    VarTemps+=VarTemp;

    AverTemps>>=2;
    VarTemps>>=2;
    pr_debug("VarTemps=%u,AverTemps=%u \r\n",VarTemps,AverTemps);
    return (bool)(( AverTemps<=185 ) && (VarTemps >=70));
}

posted on 2013-08-06 18:47 天下 阅读(340) 评论(0)  编辑 收藏 引用 所属分类: 算法


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2013年3月>
242526272812
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(4)

随笔分类(378)

随笔档案(329)

链接

最新随笔

搜索

最新评论