码迷,mamicode.com
首页 > 其他好文 > 详细

codebook 背景建模更新及码本模型如何释放内存

时间:2015-05-07 12:30:57      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:建模   内存   

在使用codebook背景建模过程中,对于模型的背景更新始终一个问题。

1 我们要求的目标是:

  • 1 在人静止不动时,不能把人更新成背景(必须保证人始终是前景);
  • 2 但是对于移动的书本等要能够被更新成背景

2 提出的解决办法:

2.1 采用两个codebook背景模型,

一个模型:主模型M,用来分割前景
另一个模型:重新建模模型R,满足条件后重新建模成功,R替代M
R替代M后,要将M释放掉,然后重新初始化一份R

temp = M;
M = R;
free(temp);
R = Init();

如何释放存在的codebook码本模型?

void CodeBookDestroy(codeBook* T, int len) //len = width*height
{
    for(int j = 0; j < len; j++)
    {
        if (T[j].cb)
        {
            for (int i = 0; i < T[j].numEntries; i++)
            {
                delete T[j].cb[i];
            }
            delete [] T[j].cb;
        }
    }
    if (T)
        delete [] T;
    T = NULL;
}

2.2 重新建模的条件(满足一个即可)

  1. 画面没有前景时, 意味着此时房间没有人
  2. 有太多的前景时,意味着光线发生了变化或摄像头被移动,或背景模型计算不准确

3 参考论文

Smart Vision for Managed Home Care:
http://download.csdn.net/detail/quzhongxin/8671203

codebook 背景建模更新及码本模型如何释放内存

标签:建模   内存   

原文地址:http://blog.csdn.net/quzhongxin/article/details/45558269

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!