统计每十帧出现次数最多的那个

统计输出结果,每十帧出现次数最多的那个

首先,建立一个list用于存放每十帧输出结果。

#define MAX_LIST_NUM  10

list<int> plist; //存放队列

判断是否已经存放了十帧,没有的话接着往里存放,已经有十帧的话,将第一帧推出,现帧存放进去,这里n表示要存放的结果

if (plist.size() < MAX_LIST_NUM)
{
plist.push_back(n);
}
else if (plist.size() == MAX_LIST_NUM)
{
plist.pop_front();
plist.push_back(n);

}


判断十帧中出现频率最多的那个数字

list<int>::iterator ppst;
int maxNum = 0;


if (plist.size() == MAX_NUM_PERSON_LIST_NUM)
{
vector<IntScore> mNumVec;
mNumVec.clear();
IntScore tempNum;
//tempNum = plist.begin();
for (ppst=plist.begin();ppst!=plist.end();ppst ++)
{

tempNum.score = 0;
tempNum.str = *ppst;

int findFlag = 0;
for (int nNumVecIndex = 0; Index < mNumVec.size();Index ++)
{
if (tempNum.str == mNumVec[Index].str )
{
mNumVec[Index].score ++;
findFlag = 1;
break;


}
}
if (findFlag == 0)
{
tempNum.score = 1;
mNumVec.push_back(tempNum);
}
}


int maxscore = 0;
int maxscoreIndex;
int maxNumPerson = 0;
for (int Index = 0; Index < mNumVec.size(); Index ++)
{
if (mNumVec[Index].score > maxscore)
{
maxscore = mNumVec[Index].score;
maxscoreIndex = Index;
maxNumPerson = mNumVec[Index].str;
}
}
if (maxscore < 1)
{
return 0;
}

这里代码解释的是一个思路,并不是完整代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值