C++ OpenCV中的函数

C++ OpenCV中的函数,c++,codeblocks,C++,Codeblocks,您好,我已经在OpenCV中编写了以下代码。基本上,它从文件中读取视频。现在,我想创建一个函数来调整视频大小,但我不确定如何从主函数调用“VideoCapture”类。我已经编写了一个示例函数,看看它是否可以读取任何内容,但它编译得很好,显示了来自主函数的内容,但没有来自新创建的函数的内容。有什么帮助吗?另外,我不是很有经验,请容忍我,哈哈 using namespace cv; using namespace std; void resize_video(Vid

您好,我已经在OpenCV中编写了以下代码。基本上,它从文件中读取视频。现在,我想创建一个函数来调整视频大小,但我不确定如何从主函数调用“VideoCapture”类。我已经编写了一个示例函数,看看它是否可以读取任何内容,但它编译得很好,显示了来自主函数的内容,但没有来自新创建的函数的内容。有什么帮助吗?另外,我不是很有经验,请容忍我,哈哈

     using namespace cv;
     using namespace std;

     void resize_video(VideoCapture capture);

     int main(int argc, char** argv)
     {
        VideoCapture capture; //the C++ API class to capture the video from file

        if(argc == 2)
         capture.open(argv[1]);
        else
         capture.open(0);

        if(!capture.isOpened())
        {
           cout << "Cannot open video file " << endl;
           return -1;
        }

        Mat frame;
        namedWindow("display", CV_WINDOW_AUTOSIZE);
        cout << "Get the video dimensions " << endl;
        int fps = capture.get((int)CV_CAP_PROP_FPS);
        int height = capture.get((int)CV_CAP_PROP_FRAME_HEIGHT);
        int width = capture.get((int)CV_CAP_PROP_FRAME_WIDTH);
        int noF = capture.get((int)CV_CAP_PROP_FRAME_COUNT);
        CvSize size = cvSize(width , height);

        cout << "Dimensions: " << width << height << endl;
        cout << "Number of frames: " << noF << endl;
        cout << "Frames per second: " << fps << endl;


        while(true)
        {
          capture >> frame;
          if(frame.empty())
            break;
          imshow("display", frame);
          if (waitKey(30)== 'i')
            break;
        }
       //resize_video();
  }

  void resize_video(VideoCapture capture)
  {
     cout << "Begin resizing video " << endl;

    //return 0;
  }
使用名称空间cv;
使用名称空间std;
void resize_视频(视频捕获);
int main(int argc,字符**argv)
{
视频捕获;(/C++ API类)从文件中捕获视频
如果(argc==2)
capture.open(argv[1]);
其他的
capture.open(0);
如果(!capture.isOpened())
{

难道你想在while循环中调用你的函数,而不是在它之后(太晚了,程序结束了)

所以,它可能看起来像这样:

void resize_video( Mat & image )
{
   //
   // do  your processing
   //
   cout << "Begin resizing video " << endl;
}
while(true)
    {
      capture >> frame;
      if(frame.empty())
        break;

      resize_video(frame);

      imshow("display", frame);
      if (waitKey(30)== 'i')
        break;
    }