Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将cv::Mat数组传递给C中的函数_Arrays_Function_Vector - Fatal编程技术网

Arrays 将cv::Mat数组传递给C中的函数

Arrays 将cv::Mat数组传递给C中的函数,arrays,function,vector,Arrays,Function,Vector,我有这个问题已经有几天了,我找不到解决的办法 我正在尝试存储一组cv::Mats,到目前为止,我的方法是使用 std::向量存储帧(32)

我有这个问题已经有几天了,我找不到解决的办法

我正在尝试存储一组cv::Mats,到目前为止,我的方法是使用
std::向量存储帧(32)frame.copyTo(store\u frames[I])
将新帧复制到它们的位置。 如果它位于main内部,那么它可以正常工作,但是如果我想将它传递给一个函数并做同样的事情,那么它就不再好了。 对于简单的垫子,我没有同样的问题。我只是在标题中全局声明它们
cv::垫框;

如果我有一个函数:

void function( cv::Mat &f1 ) {
..
f1.at<float>(10,10) += 100;
..
}
输出(假设frame.at(10,10)的初始值为
100200300400500

现在的问题是,我不能用std::vector store_frames做同样的事情。首先,如果我尝试以同样的方式在标题中声明它
std::vector store_frames(32)
我在32号上遇到一个错误,说
错误:应该是一个类型说明符
。如果我只是说
std::vector store\u frames;
它就不知道它的大小。我看到有人在某处调用
store\u frames.resize
我试过这么做,但我得到一个错误,说
这个声明没有存储类或类型说明符ier
。我在互联网上查找解决方案,但没有找到任何解决方案。我知道这个问题本身可能听起来很愚蠢,但我对这个问题不熟悉,知道的不多

所以我的问题是我如何声明这个向量,这样就可以把它传递给一个函数,在里面修改它,然后保存修改

谢谢!

试试看

  • 在头文件中声明为
    std::vector store_frame;
    ,在源代码中声明为
    store_frame.resize(32);

  • 在源代码中使用
    std::vector store_frames(32);

  • 附言:我刚刚加了这个作为评论。:)

    ...
    for(int i=0; i<5; i++) {
    function(frame);
    std::cout<<frame.at<float>(10,10)<<' ';
    }