使用opencv / c ++对一系列帧进行求和

时间:2013-12-13 08:07:49

标签: c++ opencv vector

我希望实时汇总4帧中的所有值。当前帧和之前的3帧。要做到这一点,每次生成当前的farme时,我都会将它存储在一个名为Nframe的向量中。这是我到目前为止所做的,但似乎不正确..

float *amp;   //points to the current frame
vector<float *>Nframe;

   for(int i=0; i<4; i++){
           Nframe.push_back(amp);
        }

         int sum_of_elems=0;
         for(std::vector<int>::iterator j=Nframe.begin();j!=Nframe.end();++j){
         sum_of_elems += *j;
         }

2 个答案:

答案 0 :(得分:0)

可变放大器定义为浮点指针。所以我认为向量Nframe被定义(或应该被定义)为std::vector<float *>

在这种情况下,代码将按以下方式显示

     float sum_of_elems = 0.0f;
     for ( auto value : Nframe ) sum_of_elems += *value;

答案 1 :(得分:0)

我认为问题是

std::vector<int>::iterator j=Nframe.begin();

它基本上是表示指向int =指针指向float

的指针

iterator to int = iterator to float*

这是错误的。

改为这样的

float sum_of_elems=0.0; // make it float
     for(std::vector<float*>::iterator j=Nframe.begin();j!=Nframe.end();++j){// make iterator to float*
     sum_of_elems += **j;