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

sum a sequence of frames using opencv/c++

本文关键字:一系列 求和 c++ opencv 使用      更新时间:2023-10-16

我想实时对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;
         }

我认为问题出在

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

它基本上是说pointer to int=pointer to pointer to 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;
变量amp被定义为浮点指针。所以我假设向量Nframe被定义(或应该被定义)为std::vector<float *>

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

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